This doesn't need wrapping in another proc does it? `@on_body = block` should suffice. Given that you're switching on `if block_given?` you could drop the &block parameter declaration, and make this line `@on_body = Proc.new` (which inherently consumes the block argument).