class _eval и instance _eval

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

Ответ::def, undefи aliasимеют разные контексты для class_evalи instance_eval.

7
задан Alexey 24 April 2012 в 21:24
поделиться