Вопросы с тегом 'eigenclass'

В Ruby Eigenclass, также называемый Singleton Class, где методы, определенные на конкретном объекте, фактически хранятся. В цепочке наследования он находится между объектом и его классом.
7

класс << self idiom в Ruby

Что делает class << self в Ruby?
24 мар. '10 в 3:02
3

Почему не эквивалент eigenclass для класса self.class, когда он выглядит так похожим?

Я где-то пропустил записку, и надеюсь, вы объясните мне это. Почему eigenclass объекта отличается от self.class? class Foo def initialize(symbol) eigenclass = class << self self end eigenclass.class_eval do attr_acc...
27 окт. '09 в 13:31
4

Методы класса Ruby против методов в Eigenclasses

Являются ли методы и методы класса в eigenclass (или метаклассе) этого класса двумя способами, чтобы определить одну вещь? В противном случае, каковы различия? class X # class method def self.a "a" end # eigenclass method class <&...
18 нояб. '10 в 16:18
3

Можно ли получить все предметы в Ruby?

Получение списка всех модулей в Ruby легко: ObjectSpace.each_object(Module).to_a Однако можно ли получить список всех eigenclasses (также известных как одноэлементные классы или метаклассы)? Или невидимые eigenclass? Я пробовал str = "foo" my_me...
19 окт. '11 в 3:50
3

Определение класса из Eigenclass

В Ruby получение eigenclass класса Foo является простым, как eigenclass = class << Foo; self; end #=> #<Class:Foo> eigenclass = Foo.singleton_class #2.1.0 #=> #<Class:Foo> Меня интересует обратная операция: получение владе...
01 февр. '14 в 21:19
1

Как найти частные методы синглтона

Я определил модуль Vehicle как такой module Vehicle class <<self def build end private def background end end end Вызов Vehicle.singleton_methods возвращает [:build]. Как я могу проверить все частные методы сингл...
27 авг. '12 в 2:51
2

Почему это важно, чтобы узнать о метапрограммировании и eigenclasses в Ruby?

В настоящее время я экспериментирую с Ruby и Rails, и я нашел несколько разделов в учебниках и книгах о метапрограммировании. Многие упоминают, что это важный компонент Ruby, но они не вникают в детали. Это как будто метапрограммирование является зак...
23 авг. '11 в 7:17
2

Почему метод singleton модуля не отображается в нисходящих системах, где он смешивается?

Я понимаю регулярный путь поиска метода, т.е. class, superclass/module, all the way up to BasicObject. Я думал, что это справедливо и для синглтонной версии цепочки, но, похоже, это не так, когда вы смешиваете модуль в мета-цепочке. Я был бы признат...
07 нояб. '12 в 11:55
3

Класс, модуль, их собственные очки и поиск методов

Откроем класс Module и добавим к нему метод: class Module def foo puts "phew" end end Я могу вызвать этот метод, сделав это, Class.foo что понятно, потому что класс Class есть Class, суперкласс которого Module. поэтому он мож...
18 мар. '13 в 11:25
4

Разница между "self.method_name" и "class << self" в Ruby

Я пытался ограничить экземпляр класса только одним (без использования singleton), но я не мог. Я пробовал с переменными класса (@@), но без везения. Я искал ее и наткнулся на это: class A @count = 0 class << self attr_accessor :cou...
08 янв. '10 в 4:48
1

Как сделать постоянным модуль также видимым в пределах eigenclass?

Я создал модуль, который содержит константу NAME и метод hello. Если класс включает модуль, оба определения должны быть видны в разных областях. module A NAME = 'Otto' def self.included(base) base.extend(ClassMethods) end def hello(name...
13 янв. '17 в 9:03
1

Singleton класс одноэлементного класса BasicObject в Ruby

Это в основном "академический", но здесь он идет: Согласно этой диаграмме Eigenclass Ruby (слегка отредактирован): BasicObject.singleton_class.singleton_class.superclass - это Class. Однако, работая на интерпретаторе Ruby (Ruby v2.5.1), выясняе...
02 июл. '18 в 8:57
3

Неожиданное поведение Ruby eigenclass

Во-первых, добавьте метод для извлечения eigenclass "скопированный из этот пост в блоге" class Object def eigenclass class << self self end end end Затем создайте простой класс class A end puts A.new.eigenclass.supe...
03 июн. '14 в 22:16
1

ActiveSupport:: Обратные вызовы методов класса

Можно ли использовать методы ActiveSupport::Callbacks для класса? Более конкретно, в приведенном ниже модуле, где бы вы положили include ActiveSupport::Callbacks, чтобы сделать define_callbacks и run_callbacks общим тем же состоянием? module Handle...
13 окт. '12 в 5:26
2

рубины, когда появляются собственные очки

Существуют ли Eigenclasses до определения одного метода на объект или класс. т.е. они всегда существуют или существуют когда метод singleton или метод класса в определенном?
18 авг. '13 в 2:01