## # ensure Test assert('ensure - context - yield') do class EnsureYieldBreak attr_reader :ensure_context def try yield ensure @ensure_context = self end end yielder = EnsureYieldBreak.new yielder.try do end assert_equal yielder, yielder.ensure_context end assert('ensure - context - yield and break') do class EnsureYieldBreak attr_reader :ensure_context def try yield ensure @ensure_context = self end end yielder = EnsureYieldBreak.new yielder.try do break end assert_equal yielder, yielder.ensure_context end assert('ensure - context - yield and return') do class EnsureYieldBreak attr_reader :ensure_context def try yield ensure @ensure_context = self end end yielder = EnsureYieldBreak.new lambda do yielder.try do return end end.call assert_equal yielder, yielder.ensure_context end