Class: Method
- Defined in:
- lib/backports/1.8.7/method/name.rb,
lib/backports/1.9.1/proc/lambda.rb,
lib/backports/2.2.0/method/curry.rb,
lib/backports/2.6.0/method/compose.rb,
lib/backports/2.2.0/method/super_method.rb
Instance Attribute Summary collapse
-
#name ⇒ Object
Returns the value of attribute name.
-
#owner ⇒ Object
Returns the value of attribute owner.
-
#receiver ⇒ Object
Returns the value of attribute receiver.
Instance Method Summary collapse
- #<<(g) ⇒ Object
- #>>(g) ⇒ Object
- #curry(argc = nil) ⇒ Object
- #super_method ⇒ Object
- #to_proc_with_lambda_tracking ⇒ Object
- #unbind_with_additional_info ⇒ Object
Instance Attribute Details
#name ⇒ Object
Returns the value of attribute name.
5 6 7 |
# File 'lib/backports/1.8.7/method/name.rb', line 5 def name @name end |
#owner ⇒ Object
Returns the value of attribute owner.
5 6 7 |
# File 'lib/backports/1.8.7/method/name.rb', line 5 def owner @owner end |
#receiver ⇒ Object
Returns the value of attribute receiver.
5 6 7 |
# File 'lib/backports/1.8.7/method/name.rb', line 5 def receiver @receiver end |
Instance Method Details
#<<(g) ⇒ Object
5 6 7 |
# File 'lib/backports/2.6.0/method/compose.rb', line 5 def <<(g) to_proc << g end |
#>>(g) ⇒ Object
9 10 11 |
# File 'lib/backports/2.6.0/method/compose.rb', line 9 def >>(g) to_proc >> g end |
#curry(argc = nil) ⇒ Object
5 6 7 |
# File 'lib/backports/2.2.0/method/curry.rb', line 5 def curry(argc = nil) to_proc.curry(argc) end |
#super_method ⇒ Object
5 6 7 8 9 10 11 12 13 14 |
# File 'lib/backports/2.2.0/method/super_method.rb', line 5 def super_method singleton_klass = class << receiver; self; end call_chain = singleton_klass.ancestors # find current position in call chain: skip = call_chain.find_index {|c| c == owner} or return call_chain = call_chain.drop(skip + 1) # find next in chain with a definition: next_index = call_chain.find_index {|c| c.method_defined? name} next_index && call_chain[next_index].instance_method(name).bind(receiver) end |
#to_proc_with_lambda_tracking ⇒ Object
16 17 18 19 20 |
# File 'lib/backports/1.9.1/proc/lambda.rb', line 16 def to_proc_with_lambda_tracking proc = to_proc_without_lambda_tracking proc.send :__is_lambda__=, true proc end |
#unbind_with_additional_info ⇒ Object
7 8 9 10 11 12 |
# File 'lib/backports/1.8.7/method/name.rb', line 7 def unbind_with_additional_info unbound = unbind_without_additional_info unbound.name = name unbound.owner = owner unbound end |