Описание тега eigenclass
In Ruby, an Eigenclass, also called a Singleton Class, is where methods defined on a specific object are actually stored. In the inheritance chain, it sits between an object and its class.
1
ответ
ActiveSupport:: Обратные вызовы для методов класса
Можно ли использовать ActiveSupport::Callbacks на методы класса? Более конкретно, в модуле ниже, куда бы вы положили include ActiveSupport::Callbacks делать define_callbacks а также run_callbacks поделитесь тем же состоянием? module Handler extend A…
13 окт '12 в 05:26
1
ответ
Ruby ищет переменную класса в объекте вместо определенного класса
Эта часть работает: class Example1 @@var1= "var1 in the Example1" def get_var1 @@var1 end end example1 = Example1.new example1.get_var1 # => "var1 in the Example1" но если я попробую eigenclass: def example1.get_var1 @@var1 end example1.get_var1 …
01 июл '14 в 12:59
1
ответ
Рубиновый собственный класс (класс сиглета) создан? Для которого?
Запутался в метапрограммировании Ruby. Итак, из урока я узнал следующее: cat = "kitty" cat.upcase # "KITTY" cat.poop # undefined 'poop' def cat.poop puts 'pooooooo...' end cat.upcase # "KITTY" cat.poop # "pooooooo..." Таким образом, это означает, чт…
13 июл '14 в 05:31
4
ответа
Методы класса Ruby против методов в собственных классах
Являются ли методы и методы класса в собственном классе (или метаклассе) этого класса всего лишь двумя способами определить одну вещь? Иначе каковы различия? class X # class method def self.a "a" end # eigenclass method class << self def b "b"…
18 ноя '10 в 16:18
6
ответов
Класс << Собственная идиома в Ruby
Что значит class << self делать в рубине?
24 мар '10 в 03:02
2
ответа
Неявный контекст и собственные классы
Недавно я нашел интересную статью о неявных контекстах в Ruby, и мне показалось, что этот опыт довольно открывающий. Я понял, что в Ruby есть ссылка не только на self (получатель метода по умолчанию), но также к текущему классу (также известному как…
04 ноя '12 в 12:58
2
ответа
Рубин, когда собственные классы появляются
Существуют ли собственные классы до определения одноэлементного метода в объекте или классе. т.е. всегда ли они существуют или появляются, когда определен одноэлементный метод или метод класса?
18 авг '13 в 02:01
2
ответа
Вызов метода класса собственного класса
Мне нужно переопределить метод класса для некоторых экземпляров класса class Foo def eigen_class class << self self end end def self.foo "original foo" end def override_foo class << self def self.foo "overridden foo" end end end end foo …
19 ноя '12 в 15:27
3
ответа
Почему собственный класс не эквивалентен self.class, когда он выглядит так похоже?
Я где-то пропустил записку, и я надеюсь, что вы мне это объясните. Почему собственный класс объекта отличается от self.class? class Foo def initialize(symbol) eigenclass = class << self self end eigenclass.class_eval do attr_accessor symbol en…
27 окт '09 в 13:31
1
ответ
Ruby 1.8 против 1.9: определение того, является ли синглтон-класс Ruby подклассом другого класса
Как уже упоминалось в ответе на предыдущий вопрос, B < A это самый простой способ определить, является ли класс подклассом другого. Однако, это, кажется, терпит неудачу в Ruby 1.8 (также REE 1.8), когда B является одноэлементным классом (т. е. со…
06 мар '13 в 23:33
1
ответ
Как создать метод, который выполняет ранее заданный блок в Ruby?
У меня есть класс, который был построен для создания подклассов. class A def initialize(name) end def some # to define in subclass end end # usage p A.new('foo').some #=> nil В моем случае я не хочу создавать подкласс, так как мне нужен только од…
26 сен '17 в 09:52
1
ответ
Синглтон-класс синглтон-класса BasicObject в Ruby
Это в основном "академический", но здесь это идет: Согласно этой диаграмме собственного класса Ruby (слегка отредактировано): BasicObject.singleton_class.singleton_class.superclass является Class, Однако, запустив это на интерпретаторе Ruby (Ruby v2…
02 июл '18 в 08:57
1
ответ
Наличие одиночного модуля, расширяющего класс
У меня есть одно приложение в моем приложении, которое повторно используется в разных приложениях. Я хочу, чтобы этот синглтон получал некоторые методы по умолчанию из моего класса, но также и имел возможность настраивать модуль / собственный класс.…
02 сен '14 в 23:42
1
ответ
Как найти частные синглтон методы
Я определил модуль Vehicle как такой module Vehicle class <<self def build end private def background end end end Вызов Vehicle.singleton_methods возвращается [:build], Как я могу проверить все частные одноэлементные методы, определенные Vehic…
27 авг '12 в 02:51
2
ответа
Метапрограммирование. Где происходит диспетчеризация метода, когда мы вызываем метод экземпляра, определенный в методе класса?
Я читаю метапрограммирование Ruby и просто хочу кое-что прояснить в следующем перефразированном коде: class MyClazz def self.my_class_method(name) define_method(name) { # do stuff } end my_class_method :foo my_class_method :bar end # The code above …
24 мар '12 в 04:47
2
ответа
Почему одноэлементный метод модуля не виден в нижестоящих собственных классах, где он смешивается?
Я понимаю обычный путь поиска метода, т.е. class, superclass/module, all the way up to BasicObject, Я думал, что это верно и для одноэлементной версии цепочки, но не похоже, что вы смешиваете модуль в мета-цепочке. Буду признателен, если кто-то може…
07 ноя '12 в 11:55
1
ответ
Ruby eigenclass pattern - запрос на уточнение
Какие источники информации описывают лучшие собственные классы Руби? Я прочитал следующее: (см. дополнительную страницу) Тем не менее, я не смог вывести следующее поведение: class Object def sc(n = 1) # nth superclass if n == 0 then return self end …
06 дек '10 в 22:34
1
ответ
Рубиновый класс << Klass = Module::new
У меня есть следующий синтаксис в фрагменте кода, и я не уверен, что он делает. class << PushableModule = Module::new def new *args, &blk m = Module::new( *args, &blk ) m.extend Pushable m end end Во-первых, класс или модуль PushableMo…
10 июл '13 в 03:07
1
ответ
Почему определение метода в main определяет его как в Object, так и в main.singleton_class?
Я проверял, где определены методы в Ruby, когда определение выполняется на верхнем уровне, и результат удивителен: def foo; end singleton_class != Object # => true self.class == Object # => true m1 = singleton_class.instance_method :foo # =>…
26 ноя '12 в 12:45
3
ответа
Знание, является ли класс собственным классом
Какой лучший способ сказать, если класс some_class является собственным классом некоторого объекта?
10 окт '12 в 13:51