This is my first email that I send to this ML, so hi everyone
I’ve been using Ruby for 2 years or more now, and I am still learning
this awesome language. But I can’t grasp my head about method_missing
and how it works, can someone please help me understand about how
method_missing works?
this awesome language. But I can’t grasp my head about method_missing
and how it works, can someone please help me understand about how
method_missing works?
I’ve been using Ruby for 2 years or more now, and I am still learning
this awesome language. But I can’t grasp my head about method_missing
and how it works, can someone please help me understand about how
method_missing works?
class Foo
def bar(*args)
puts “You called bar with #{args.inspect}”
end
def method_missing(*args)
puts “method_missing with #{args.inspect}”
end
end
but why do i get a: asd.rb:6:in `method_missing’: wrong number of
arguments (1 for 0) (ArgumentError) – when i try to call
method_missing like that?
if i use method_missing(*args) it works, does method_missing requires
that i use an argument?
Run the code I first posted again, and look at the output carefully.
method_missing is passed the name of the method which didn’t exist as
the first argument, followed by 0 or more values which were the
arguments to the original call. So you must define it to receive at
least one argument.
A good template to use:
def method_missing(method_name, *args, &block)
…
end