alias_method y class_methods no se mezclan?
He estado tratando de jugar con un módulo de caché global, pero no puedo entender por qué esto no funciona.
¿Alguien tiene alguna sugerencia?
Este es el error:
NameError: undefined method `get' for module `Cache'
from (irb):21:in `alias_method'
... generado por este código:
module Cache
def self.get
puts "original"
end
end
module Cache
def self.get_modified
puts "New get"
end
end
def peek_a_boo
Cache.module_eval do
# make :get_not_modified
alias_method :get_not_modified, :get
alias_method :get, :get_modified
end
Cache.get
Cache.module_eval do
alias_method :get, :get_not_modified
end
end
# test first round
peek_a_boo
# test second round
peek_a_boo