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 so
If your method required a block, Ruby will prompt it. The raise keyword doesn't require a block, it only prompts a message for handling an Exception.
It could be a method like the above example
def needs_block
yield
end
needs_block
Or you could require a Proc
def needs_block(&Proc)
proc.call
end
Anyway, adding raise block_given? would be nice.
Here says:
"The raise method is from the Kernel module. By default, raise creates an exception of the RuntimeError class. To raise an exception of a specific class, you can pass in the class name as an argument to raise".