Class: Crabfarm::Engines::SyncStateManager

Inherits:
Object
  • Object
show all
Defined in:
lib/crabfarm/engines/sync_state_manager.rb

Direct Known Subclasses

Modes::Console::ConsoleDsl

Instance Method Summary collapse

Constructor Details

#initialize(_context) ⇒ SyncStateManager

Returns a new instance of SyncStateManager.



8
9
10
11
# File 'lib/crabfarm/engines/sync_state_manager.rb', line 8

def initialize(_context)
  @context = _context
  @lock = Mutex.new
end

Instance Method Details

#reload!Object



13
14
15
16
17
18
# File 'lib/crabfarm/engines/sync_state_manager.rb', line 13

def reload!
  @lock.synchronize {
    ActiveSupport::Dependencies.clear
    @context.reset
  }
end

#resetObject



20
21
22
23
24
# File 'lib/crabfarm/engines/sync_state_manager.rb', line 20

def reset
  @lock.synchronize {
    @context.reset
  }
end

#transition(_name, _params = {}) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/crabfarm/engines/sync_state_manager.rb', line 26

def transition(_name, _params={})
  @lock.synchronize {
    output = { name: _name, params: _params }

    output[:elapsed] = Benchmark.measure do
      output[:doc] = TransitionService.apply_state(@context, _name, _params).output_as_json
    end

    OpenStruct.new output
  }
end