Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Foo
- class << self
- def make_this_method name, &block
- define_method(name, &block)
- end
- end
- end
- Foo.make_this_method(:bar) do |*args|
- case args.size
- when 0 ; args = ['fizz']
- when 1 ; # nothing
- else ; raise ArgumentError.new("no") if args.size > 1
- end
- arg1, = *args
- puts "bar! #{arg1}"
- end
- Foo.new.bar('baz') # outputs "bar! baz"
- Foo.new.bar # outputs "bar! fizz"
Add Comment
Please, Sign In to add comment