Method: ComposableProc#and
- Defined in:
- lib/lab419/core/extensions/composable_proc.rb
#and(lmbda = nil, &block) ⇒ Object Also known as: +
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/lab419/core/extensions/composable_proc.rb', line 5 def and lmbda=nil, &block raise ArgumentError, "either use a lambda or a block" if !!block == !!lmbda self.class.new do | *args, &blk | nxt = lmbda || block results = my_lambda.( *args, &blk ) if Array === results if nxt.arity < 0 || nxt.arity == results.size nxt.( *results ) elsif nxt.arity.zero? nxt.() else nxt.( results ) end else nxt.( results ) end end end |