In Ruby, I see that it can be useful to put classes inside modules for the sake of namespacing. I also see that it's possible to put modules inside classes. But I don't see why you'd do that.
Modules are generally mixed into classes, right? So, what would be the purpose of defining a module inside a class?
Думаю, на самом деле речь идет об использовании класса в качестве пространства имен, что иногда бывает удобнее, чем размещение всего в модуле. Я никогда не видел этого на практике, но в любом случае это совершенно правильный код Ruby.
Единственный реальный сценарий, который я могу придумать, - это использовать EventMachine в классе:
class Api
def initialize
EM.start_server "0.0.0.0", 8080, Server
end
module Server
def receive_data (data)
# do stuff
end
end
end
class Image
module Colors
Red = ...
Blue = ...
end
include Colors
end
include Image::Colors
Image.new.set_pixel x, y, Red