Is there any built in way to require that a block be passed to a Ruby method? I realize I can just raise an exception if block_given?
is false, but is there some nicer way to do it?
views:
65answers:
2
+5
A:
Simply by using yield
.
If you include yield
in a method, and a block is not given, it throws an error.
Put this in a file and run it:
def needs_block
yield
end
needs_block
It will throw an error like this:
LocalJumpError: no block given
from (irb):14:in `needs_block'
from (irb):16
Doug Neiner
2010-02-22 05:17:05
Well that was way too easy :) Thanks!
Kyle Slattery
2010-02-22 05:18:42