class A
do_something_from_b
def method_in_a
end
end
module B
def self.included base
base.extend ClassMethods
end
module ClassMethods
def do_something_from_b
A.class_eval do
alias_method :aliased_method_in_a, :method_in_a
end
end
end
end
A.send(:include, B)
Quel codice non sarà riuscito perché quando do_somethind_from_b
viene chiamato, method_in_a
non esiste ancora.codice in esecuzione dopo le lezioni è a pieno carico
Quindi c'è un modo per collegare in class A
dopo che è stato completamente caricato, senza mettere la chiamata do_something_from_b
a fine class A
?
Modifica: Come sottolineato, ci sono altre cose che non funzionano nel codice, ma questo è oltre il punto. Voglio solo illustrare ciò che voglio realizzare, che è eseguire alcuni codice dopo una classe è chiusa (non importa che possa essere riaperta a volontà). E ora so che probabilmente non è possibile.
Grazie!
Vorrei suggerire di pubblicare un esempio funzionante, con qualsiasi commento su "Come faccio a fare questo lavoro". In questo caso, dovrebbe essere solo una riga, ma questo codice sembra essere rotto in vari modi ... – DigitalRoss
Inoltre, le classi ruby sono aperte, quindi non c'è mai un punto nel tempo in cui una classe è completamente caricata. –
Sam, grazie per il promemoria. Quindi credo che a causa di ciò, è impossibile fare ciò che volevo. – Ivan