Put the class hierarchy to work Overriding methods cleanly (not so useful on Ruby 2.0...): 1 def override_method(*symbols, &block) 2 new_methods = Module.new 3 old_methods = Module.new 4 new_methods.instance_eval { include old_methods } 5 include new_methods 6 7 symbols.each do |symbol| 8 old_methods.__send__(:define_method, symbol, instance_method(symbol)) 9 new_methods.module_eval(&block) 10 define_method(symbol, new_methods.instance_method(symbol)) 11 end 12 end