RosettaCodeData/Task/Respond-to-an-unknown-method-call/Ruby/respond-to-an-unknown-method-call.rb
Ingy döt Net b83f433714 tasks a-s
2013-04-10 23:57:08 -07:00

22 lines
655 B
Ruby

class Example
def foo
puts "this is foo"
end
def bar
puts "this is bar"
end
def method_missing(name, *args, &block)
puts "tried to handle unknown method %s" % name # name is a symbol
unless args.empty?
puts "it had arguments: %p" % [args]
end
end
end
example = Example.new
example.foo # prints “this is foo”
example.bar # prints “this is bar”
example.grill # prints “tried to handle unknown method grill”
example.ding("dong") # prints “tried to handle unknown method ding”
# prints “it had arguments: ["dong"]”