Class: Lab42::UnboundBehavior
- Defined in:
- lib/lab42/core/unbound_behavior.rb
Overview
Thank youn my dear Proxy, for sending me all the information I, the clever guy, who is having all the fun, will make best use of it by being an extremly, yes I said extremly clever callable object representing the methods or instance methods represented by the calls to ‘Object#fn` or `Module#fm`. Did I tell you yet? It is sooooo out not be functional…
Instance Attribute Summary collapse
-
#args ⇒ Object
readonly
Returns the value of attribute args.
-
#block ⇒ Object
readonly
Returns the value of attribute block.
-
#method ⇒ Object
readonly
Returns the value of attribute method.
Instance Method Summary collapse
-
#_(*a, &b) ⇒ Object
Rebinding: We still apply our LIFO policy! So much for the proverbial “The early bird catches the worm”? Anyway, what would I do with a worm??? (Mescal maybe?).
- #call(*a, &b) ⇒ Object
- #to_proc ⇒ Object
Instance Attribute Details
#args ⇒ Object (readonly)
Returns the value of attribute args.
11 12 13 |
# File 'lib/lab42/core/unbound_behavior.rb', line 11 def args @args end |
#block ⇒ Object (readonly)
Returns the value of attribute block.
11 12 13 |
# File 'lib/lab42/core/unbound_behavior.rb', line 11 def block @block end |
#method ⇒ Object (readonly)
Returns the value of attribute method.
11 12 13 |
# File 'lib/lab42/core/unbound_behavior.rb', line 11 def method @method end |
Instance Method Details
#_(*a, &b) ⇒ Object
Rebinding: We still apply our LIFO policy! So much for the proverbial “The early bird catches the worm”? Anyway, what would I do with a worm??? (Mescal maybe?)
31 32 33 |
# File 'lib/lab42/core/unbound_behavior.rb', line 31 def _ *a, &b self.class.new @klass, method, *(a + args), &(b||block) end |
#call(*a, &b) ⇒ Object
13 14 15 16 17 |
# File 'lib/lab42/core/unbound_behavior.rb', line 13 def call *a, &b available_args = a + args m = method.bind available_args.first m.( *available_args.drop(1), &(b||block) ) end |
#to_proc ⇒ Object
19 20 21 22 23 24 25 |
# File 'lib/lab42/core/unbound_behavior.rb', line 19 def to_proc -> *a, &b do available_args = a + args method.bind( available_args.first ) .( *available_args.drop(1), &(b||block) ) end end |