Я бы хотел, чтобы часть моего модуля расширила класс String.
Это не работает
module MyModule
class String
def exclaim
self << "!!!!!"
end
end
end
include MyModule
string = "this is a string"
string.exclaim
#=> NoMethodError
Но это работает
module MyModule
def exclaim
self << "!!!!!"
end
end
class String
include MyModule
end
string = "this is a string"
string.exclaim
#=> "this is a string!!!!!"
Я не хочу, чтобы все другие функции MyModule должны быть оставлены в String. Включение его снова на самом высоком уровне кажется некрасивым. Разве есть более изящный способ сделать это?