В прошлом топике на эту тему упоминались скринкасты «Ruby Metaprogramming» с Дейвом Томасом. Скачал, доволен как слон. Но тем не менее с удовольствием прочел статью. Пусть оно в мозгу укладывается, а моск постепенно пусть всё это осознает.
Значит в книге «Язык программирования Ruby» (Ruby-Programming-Language) Флэнагана и Матцумото только приоткрыли дверь в eigenclass (там их называют обособленные классы), описав их в общем хранилищем синглтон-методов. Вот как надо смотреть в микроскоп на структуру рубина.
Большое спасибо за статью, с нетерпением жду продолжения с такой же доступной и красивой инфографикой.
Возникло пару вопросов (в руби не так давно):
— Если методы класса размещаются в его метаклассе, что тогда остается в самом классе?
— Есть ли метакласс в Object?
— Для метаклассов, которые вы получили методом snoopy.metaclass, нельзя определить методы, так же? Иначе по логике они должны попасть в метакласс метакласса?
по третьему пункту — вы правы, у метакласса есть свой мтекласс и вы можете определять методы для него
но, как писал Паоло Перротта по этому поводу: «Если вы найдете этому практическое применение, дайте миру знать об этом»
Вникаем в метаклассы Ruby