Notes posted by npearson72
RSS feed
npearson72 -
December 10, 2012
1 thank
@drewyoung1
Including module in a class does not automatically over-write methods defined with the same name.
Ex:
module Mod
def exit(code = 0) puts "Exiting with code #{code}" super end
end
class OriginalClass
include Mod def exit puts "Original message" end
end
OriginalClass.new.exit 99
Produces:
exit': wrong number of arguments (1 for 0) (ArgumentError)
if you use this construct, the alias_method will work similar to super:
module Mod
alias_method :super_exit, :exit def self.included base base.instance_eval do def exit(code = 0) puts "Exiting with code #{code}" super_exit end end end
end