Block has priority over attributes extraction
Simplified tests a little
Replaced ::Kernel::block_given? with block condition