Class: Trailblazer::Activity

Inherits:
Object
  • Object
show all
Defined in:
lib/trailblazer/activity.rb,
lib/trailblazer/activity/schema.rb,
lib/trailblazer/activity/circuit.rb,
lib/trailblazer/activity/task_wrap.rb,
lib/trailblazer/activity/introspect.rb,
lib/trailblazer/activity/structures.rb,
lib/trailblazer/activity/task_wrap/runner.rb,
lib/trailblazer/activity/task_wrap/pipeline.rb,
lib/trailblazer/activity/schema/intermediate.rb,
lib/trailblazer/activity/task_wrap/call_task.rb,
lib/trailblazer/activity/schema/implementation.rb,
lib/trailblazer/activity/task_wrap/variable_mapping.rb

Overview

This is DSL-independent code, focusing only on run-time.

Defined Under Namespace

Modules: Introspect, State, TaskBuilder, TaskWrap, Testing Classes: Circuit, End, Left, NodeAttributes, Output, Right, Schema, Signal, Start

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(schema) ⇒ Activity

include Activity::Interface # TODO



6
7
8
# File 'lib/trailblazer/activity.rb', line 6

def initialize(schema)
  @schema = schema
end

Class Method Details

.End(semantic) ⇒ Object

Builds an End instance.



52
53
54
# File 'lib/trailblazer/activity/structures.rb', line 52

def self.End(semantic)
  End.new(semantic: semantic)
end

.Output(signal, semantic) ⇒ Object

Builds an Output instance.



47
48
49
# File 'lib/trailblazer/activity/structures.rb', line 47

def self.Output(signal, semantic)
  Output.new(signal, semantic).freeze
end

Instance Method Details

#[](*key) ⇒ Object

Reader and writer method for an Activity. The writer = “value” exposes immutable behavior and will replace the old Always use the accessors to avoid leaking state to other components due to mutable write operations.



23
24
25
# File 'lib/trailblazer/activity.rb', line 23

def [](*key)
  @schema[:config][*key]
end

#call(args, **circuit_options) ⇒ Object



10
11
12
13
14
15
# File 'lib/trailblazer/activity.rb', line 10

def call(args, **circuit_options)
  @schema[:circuit].(
    args,
    **(circuit_options.merge(activity: self))
  )
end

#inspectObject



31
32
33
# File 'lib/trailblazer/activity.rb', line 31

def inspect
  %{#<Trailblazer::Activity:0x#{object_id}>}
end

#to_hObject



27
28
29
# File 'lib/trailblazer/activity.rb', line 27

def to_h
  @schema
end