class Object
Public Instance Methods
cm_fopen(filename)
click to toggle source
# File lib/context_manager.rb, line 24 def cm_fopen(filename) f = File.open(filename) close_file = finish do |file| file.close end [f, close_file] end
finish(&block)
click to toggle source
# File lib/context_manager.rb, line 3 def finish(&block) Proc.new { |obj| block.call(obj) } end
with(*args) { |yield_obj| ... }
click to toggle source
# File lib/context_manager.rb, line 7 def with(*args) begin arg = args[0] yield_obj = arg[0] rescue raise ContextNotFound, 'no context found' end raise ContextNotFound, 'no context found' if yield_obj.nil? begin yield yield_obj ensure arg[1].call(yield_obj) end end