What happens if you use a method that has a yield, without passing a block to it?
class SomeClass < Array
def some_method
yield(self[i])
end
end
a = SomeClass.new
a.some_method
And is there a way to set a default behavior: give to the method default block to run, if other is not given?