Class: Crabfarm::Live::NavigatorRunner

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

Defined Under Namespace

Classes: Dsl

Instance Method Summary collapse

Constructor Details

#initialize(_manager, _target) ⇒ NavigatorRunner

Returns a new instance of NavigatorRunner.



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

def initialize(_manager, _target)
  @manager = _manager
  @target = _target
  @rspec = true
  @params = {}
end

Instance Method Details

#clear_paramsObject



44
45
46
47
# File 'lib/crabfarm/live/navigator_runner.rb', line 44

def clear_params
  @params = {}
  @rspec = false
end

#dslObject



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

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

#executeObject



62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/crabfarm/live/navigator_runner.rb', line 62

def execute
  strategy = if @rspec
    NavigatorRunnerRSpec.new @manager, @target
  else
    NavigatorRunnerDirect.new @manager, memento, @target, @params
  end

  Factories::Context.with_decorator self do
    strategy.execute
  end

  strategy.show_results
end

#mementoObject



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

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


53
54
55
# File 'lib/crabfarm/live/navigator_runner.rb', line 53

def navigate_to(_navigator, _params={})
  # TODO.
end

#prepare(_memento) ⇒ Object

decorator



57
58
59
60
# File 'lib/crabfarm/live/navigator_runner.rb', line 57

def prepare(_memento) # decorator
  @manager.set_memento _memento
  Context.new @manager
end

#use_memento(_memento) ⇒ Object



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

def use_memento(_memento)
  @memento = _memento
  @rspec = false
end

#use_params(_params = {}) ⇒ Object



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

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

#use_rspecObject



49
50
51
# File 'lib/crabfarm/live/navigator_runner.rb', line 49

def use_rspec
  @rspec = true
end