module Forwardable::Extended
def def_hash_delegator(hash, method, key: method, **kwd)
def def_hash_delegator(hash, method, key: method, **kwd) prefix, suffix, wrap = prepare_delegate(**kwd) if suffix method = method.to_s.gsub( /\?$/, "" ) end class_eval delegate_debug(<<-STR), __FILE__, __LINE__ - 9 def #{method}#{suffix}(*args) #{wrap}( #{prefix}#{hash}[#{key.inspect}] ) rescue Exception if !Forwardable.debug && $@ && $@.respond_to?(:delete_if) $@.delete_if do |source| source =~ %r"#{Regexp.escape(__FILE__)}"o end end raise end STR end