Tutorial by Examples

class Animal def method_missing(method, *args, &block) "Cannot call #{method} on Animal" end end => Animal.new.say_moo > "Cannot call say_moo on Animal"
class Animal def method_missing(method, *args, &block) say, speak = method.to_s.split("_") if say == "say" speak else super end end end => a = Animal.new => a.say_moo => "moo" => a.shout_moo => NoMethodE...
class Animal def method_missing(method, *args, &block) if method.to_s == 'say' block.call else super end end end => Animal.new.say{ 'moo' } => "moo"
class Animal def method_missing(method, *args, &block) say, speak = method.to_s.split("_") if say == "say" && speak return speak.upcase if args.first == "shout" speak else super end end end => Animal.new....

Page 1 of 1