Я заметил, что есть два общих способа обезьяны патч класса в рубине:
Определите новые члены в классе следующим образом:
class Array
def new_method
#do stuff
end
end
И вызов класса_eval в объекте класса:
Array.class_eval do
def new_method
#do stuff
end
end
Мне интересно, есть ли разница между ними и есть ли преимущества в использовании одного подхода над другим?