Sha256: 32a677ebb3cb0c8414c6c2b9c61e98d2d11eb94921eae161a11bcd516edb8f30
Contents?: true
Size: 871 Bytes
Versions: 6
Compression:
Stored size: 871 Bytes
Contents
class Method attr_reader :owner, :receiver, :name def initialize(receiver, method, name) @receiver = receiver @owner = receiver.class @name = name @method = method end def arity @method.arity end def call(*args, &block) %x{ #@method._p = block; return #@method.apply(#@receiver, args); } end alias [] call def unbind UnboundMethod.new(@owner, @method, @name) end def to_proc @method end def inspect "#<Method: #{@obj.class.name}##@name}>" end end class UnboundMethod attr_reader :owner, :name def initialize(owner, method, name) @owner = owner @method = method @name = name end def arity @method.arity end def bind(object) Method.new(object, @method, @name) end def inspect "#<UnboundMethod: #{@owner.name}##@name>" end end
Version data entries
6 entries across 6 versions & 1 rubygems