Class: Proc::Composition

Inherits:
Composer::Composition
  • Object
show all
Defined in:
lib/proc/composition.rb

Instance Method Summary collapse

Constructor Details

#initialize(client:, **kwargs) ⇒ Composition



5
6
7
8
9
# File 'lib/proc/composition.rb', line 5

def initialize(client:, **kwargs)
  @client = client

  super(**kwargs)
end

Instance Method Details

#call(input = input_omitted = true, **arguments) ⇒ Object

public

Dispatches this composition to proc using the client.



13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/proc/composition.rb', line 13

def call(input = input_omitted = true, **arguments)
  if block_given?
    arguments[:proc] = yield
  end

  callable = build_composition(
    input: input_omitted ? @input : input,
    arguments: @arguments.merge(arguments),
    callables: @callables.dup
  )

  @client.call("core.exec", Proc::Composer.undefined, proc: callable)
end

#each(input = input_omitted = true, **arguments, &block) ⇒ Object

public

Dispatches this composition to proc using the client, calling the given block once for each value.



29
30
31
32
33
34
35
36
37
# File 'lib/proc/composition.rb', line 29

def each(input = input_omitted = true, **arguments, &block)
  callable = build_composition(
    client: @client,
    input: input_omitted ? @input : input,
    arguments: @arguments.merge(arguments)
  )

  @client.call("core.exec", Proc::Composer.undefined, proc: callable, &block)
end