Class: Method
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#owner ⇒ Object
readonly
Returns the value of attribute owner.
-
#receiver ⇒ Object
readonly
Returns the value of attribute receiver.
Instance Method Summary collapse
- #arity ⇒ Object
- #call(*args, &block) ⇒ Object (also: #[])
-
#initialize(receiver, method, name) ⇒ Method
constructor
A new instance of Method.
- #inspect ⇒ Object
- #to_proc ⇒ Object
- #unbind ⇒ Object
Constructor Details
#initialize(receiver, method, name) ⇒ Method
Returns a new instance of Method
4 5 6 7 8 9 |
# File 'opal/opal/corelib/method.rb', line 4 def initialize(receiver, method, name) @receiver = receiver @owner = receiver.class @name = name @method = method end |
Instance Attribute Details
#name ⇒ Object (readonly)
Returns the value of attribute name
2 3 4 |
# File 'opal/opal/corelib/method.rb', line 2 def name @name end |
#owner ⇒ Object (readonly)
Returns the value of attribute owner
2 3 4 |
# File 'opal/opal/corelib/method.rb', line 2 def owner @owner end |
#receiver ⇒ Object (readonly)
Returns the value of attribute receiver
2 3 4 |
# File 'opal/opal/corelib/method.rb', line 2 def receiver @receiver end |
Instance Method Details
#arity ⇒ Object
11 12 13 |
# File 'opal/opal/corelib/method.rb', line 11 def arity @method.arity end |
#call(*args, &block) ⇒ Object Also known as: []
15 16 17 18 19 20 21 |
# File 'opal/opal/corelib/method.rb', line 15 def call(*args, &block) %x{ #@method.$$p = block; return #@method.apply(#@receiver, args); } end |
#inspect ⇒ Object
38 39 40 |
# File 'opal/opal/corelib/method.rb', line 38 def inspect "#<Method: #{@receiver.class}##@name>" end |
#to_proc ⇒ Object
29 30 31 32 33 34 35 36 |
# File 'opal/opal/corelib/method.rb', line 29 def to_proc %x{ var proc = function () { return self.$call.apply(self, $slice.call(arguments)); }; proc.$$unbound = #@method; proc.$$is_lambda = true; return proc; } end |
#unbind ⇒ Object
25 26 27 |
# File 'opal/opal/corelib/method.rb', line 25 def unbind UnboundMethod.new(@owner, @method, @name) end |