Есть ли разница в том, как class_eval
и instance_eval
работает кроме def
? Внутри блока class_eval
def
определяется метод для самого класса (, т.е. метод экземпляра ), а внутриinstance_eval
def
определяется метод для собственного класса класса (, т.е. метод класса ). Насколько я знаю, все остальные функции работают одинаково в обоих случаях (, например. define_method
, attr_accessor
, class << self; end
, определяющие константы ). Это правда?
Ответ::def
, undef
и alias
имеют разные контексты для class_eval
и instance_eval
.