Class: Proc::Composition
- Inherits:
-
Object
show all
- Defined in:
- lib/proc/composition.rb,
lib/proc/composition/deferable.rb,
lib/proc/composition/evaluator.rb
Defined Under Namespace
Classes: Deferable, Evaluator
Instance Method Summary
collapse
Constructor Details
#initialize(client:, &block) ⇒ Composition
8
9
10
11
12
|
# File 'lib/proc/composition.rb', line 8
def initialize(client:, &block)
@client = client
@block = block
@callables = []
end
|
Instance Method Details
#<<(callable) ⇒ Object
33
34
35
|
# File 'lib/proc/composition.rb', line 33
def <<(callable)
@callables << callable
end
|
#>>(other) ⇒ Object
27
28
29
30
31
|
# File 'lib/proc/composition.rb', line 27
def >>(other)
composed = dup
composed << other
composed
end
|
#call(input, **arguments) ⇒ Object
18
19
20
21
22
23
24
25
|
# File 'lib/proc/composition.rb', line 18
def call(input, **arguments)
if @block
evaluator = @block.call(Evaluator.new, **arguments)
@client.perform("compose", input, procs: evaluator.serialize.concat(serialize))
else
@client.perform("compose", input, procs: serialize)
end
end
|
#initialize_copy(_) ⇒ Object
14
15
16
|
# File 'lib/proc/composition.rb', line 14
def initialize_copy(_)
@callables = @callables.dup
end
|