Class: Trailblazer::Activity

Inherits:
Module
  • Object
show all
Defined in:
lib/trailblazer/activity/trace.rb,
lib/trailblazer/activity.rb,
lib/trailblazer/activity/present.rb,
lib/trailblazer/activity/version.rb,
lib/trailblazer/activity/interface.rb,
lib/trailblazer/activity/task_wrap.rb,
lib/trailblazer/activity/dsl/record.rb,
lib/trailblazer/activity/introspect.rb,
lib/trailblazer/activity/structures.rb,
lib/trailblazer/activity/dsl/add_task.rb,
lib/trailblazer/activity/dsl/magnetic.rb,
lib/trailblazer/activity/task_wrap/trace.rb,
lib/trailblazer/activity/task_wrap/runner.rb,
lib/trailblazer/activity/dsl/strategy/path.rb,
lib/trailblazer/activity/dsl/magnetic/merge.rb,
lib/trailblazer/activity/task_wrap/call_task.rb,
lib/trailblazer/activity/dsl/strategy/railway.rb,
lib/trailblazer/activity/dsl/strategy/fast_track.rb,
lib/trailblazer/activity/dsl/strategy/build_state.rb,
lib/trailblazer/activity/task_wrap/variable_mapping.rb

Overview

Implementation module that can be passed to ‘Activity[]`.

Direct Known Subclasses

FastTrack, Path, Railway

Defined Under Namespace

Modules: Accessor, BuildState, DSL, DSLHelper, Inspect, Interface, Introspect, Magnetic, PublicAPI, Schema, State, TaskBuilder, TaskWrap, Testing, Trace Classes: End, FastTrack, Left, Output, Path, Railway, Right, Signal, Start

Constant Summary collapse

VERSION =
"0.7.1"

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(implementation, options) ⇒ Activity

Returns a new instance of Activity.



5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/trailblazer/activity.rb', line 5

def initialize(implementation, options)
  builder, adds, circuit, outputs, options = BuildState.build_state_for( implementation.config, options)

  @initial_state = State::Config.build(
    builder: builder,
    options: options,
    adds:    adds,
    circuit: circuit,
    outputs: outputs,
  )

  include *options[:extend] # include the DSL methods.
  include PublicAPI
end

Instance Attribute Details

#initial_stateObject (readonly)

Returns the value of attribute initial_state.



3
4
5
# File 'lib/trailblazer/activity.rb', line 3

def initial_state
  @initial_state
end

Class Method Details

.End(semantic) ⇒ Object

Builds an End instance.



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

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

.FastTrack(options = {}) ⇒ Object



2
3
4
# File 'lib/trailblazer/activity/dsl/strategy/fast_track.rb', line 2

def self.FastTrack(options={})
  FastTrack.new(FastTrack, options)
end

.Output(signal, color) ⇒ Object

Builds an Output instance.



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

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

.Path(options = {}) ⇒ Object



3
4
5
# File 'lib/trailblazer/activity/dsl/strategy/path.rb', line 3

def self.Path(options={})
  Activity::Path.new(Path, options)
end

.Railway(options = {}) ⇒ Object



4
5
6
# File 'lib/trailblazer/activity/dsl/strategy/railway.rb', line 4

def self.Railway(options={})
  Railway.new(Railway, options)
end

Instance Method Details

#extended(extended) ⇒ Object

Injects the initial configuration into the module defining a new activity.



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

def extended(extended)
  super
  extended.instance_variable_set(:@state, initial_state)
end