wraps an object. if it throws an exception, keeps a copy.
# File lib/sup/util.rb, line 575 def initialize o @o = o @error = nil @mutex = Mutex.new end
# File lib/sup/util.rb, line 597 def __pass m, *a, &b begin @o.send(m, *a, &b) rescue Exception => e @error ||= e raise end end
# File lib/sup/util.rb, line 583 def clear_error!; @error = nil; end
# File lib/sup/util.rb, line 584 def has_errors?; !@error.nil?; end
# File lib/sup/util.rb, line 588 def id; __pass :id; end
# File lib/sup/util.rb, line 591 def is_a? c; @o.is_a? c; end
# File lib/sup/util.rb, line 586 def method_missing m, *a, &b; __pass m, *a, &b end
# File lib/sup/util.rb, line 593 def respond_to?(m, include_private=false) @o.respond_to?(m, include_private) end
# File lib/sup/util.rb, line 589 def to_s; __pass :to_s; end
# File lib/sup/util.rb, line 590 def to_yaml x; __pass :to_yaml, x; end