Vorrei una parte del mio modulo per estendere la classe String.Metaprogrammazione di base: estensione di una classe esistente utilizzando un modulo?
Questo non funziona
module MyModule
class String
def exclaim
self << "!!!!!"
end
end
end
include MyModule
string = "this is a string"
string.exclaim
#=> NoMethodError
Ma questo fa
module MyModule
def exclaim
self << "!!!!!"
end
end
class String
include MyModule
end
string = "this is a string"
string.exclaim
#=> "this is a string!!!!!"
non voglio tutte le altre funzionalità di MyModule da abbandonati in String. Includerlo di nuovo al più alto livello sembra brutto. Sicuramente c'è un modo più ordinato per farlo?
molto utile. grazie. – djb
Invisito per la citazione nei commenti :-) – vijucat