Class: Crabfarm::Live::NavigatorRunner

Inherits:
Object
  • Object
show all
Defined in:
lib/crabfarm/live/navigator_runner.rb

Direct Known Subclasses

ReducerRunner

Defined Under Namespace

Classes: Dsl

Instance Method Summary collapse

Constructor Details

#initialize(_target) ⇒ NavigatorRunner

Returns a new instance of NavigatorRunner.



17
18
19
20
# File 'lib/crabfarm/live/navigator_runner.rb', line 17

def initialize(_target)
  @target = _target
  @params = {}
end

Instance Method Details

#clear_paramsObject



38
39
40
# File 'lib/crabfarm/live/navigator_runner.rb', line 38

def clear_params
  @params = {}
end

#dslObject



22
23
24
# File 'lib/crabfarm/live/navigator_runner.rb', line 22

def dsl
  @dsl ||= Dsl.new self
end

#executeObject



45
46
47
48
49
50
51
52
53
# File 'lib/crabfarm/live/navigator_runner.rb', line 45

def execute
  context = Crabfarm::Context.new
  begin
    # TODO: execute prerequisites
    @transition = TransitionService.transition context, @target, @params
  ensure
    context.release
  end
end

#mementoObject



26
27
28
# File 'lib/crabfarm/live/navigator_runner.rb', line 26

def memento
  if @memento.nil? then memento_for(@target) else @memento end
end


42
43
# File 'lib/crabfarm/live/navigator_runner.rb', line 42

def navigate_to(_navigator, _params={})
end

#outputObject



55
56
57
58
# File 'lib/crabfarm/live/navigator_runner.rb', line 55

def output
  return nil if @transition.document.nil?
  JSON.pretty_generate(@transition.document).gsub(/(^|\\n)/, '  ')
end

#use_memento(_memento) ⇒ Object



30
31
32
# File 'lib/crabfarm/live/navigator_runner.rb', line 30

def use_memento(_memento)
  @memento = _memento
end

#use_params(_params = {}) ⇒ Object



34
35
36
# File 'lib/crabfarm/live/navigator_runner.rb', line 34

def use_params(_params={})
  @params = @params.merge _params
end