Me gustaría que parte de mi módulo extienda la clase String.Metaprogramación básica: ¿extender una clase existente usando un módulo?
Esto no funciona
module MyModule
class String
def exclaim
self << "!!!!!"
end
end
end
include MyModule
string = "this is a string"
string.exclaim
#=> NoMethodError
Pero esto hace
module MyModule
def exclaim
self << "!!!!!"
end
end
class String
include MyModule
end
string = "this is a string"
string.exclaim
#=> "this is a string!!!!!"
que no quieren los demás funcionalidad de MyModule a ser abandonado en la cadena. Volver a incluirlo al más alto nivel parece feo. Seguramente hay una manera más clara de hacer esto?
muy útil. gracias. – djb
Voto a favor para la cita en los comentarios :-) – vijucat