Class: Crabfarm::Engines::SyncStateManager

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(_context) ⇒ SyncStateManager

Returns a new instance of SyncStateManager.



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

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

Instance Attribute Details

#contextObject (readonly)

Returns the value of attribute context.



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

def context
  @context
end

Instance Method Details



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

def navigate(_name, _params={})
  @lock.synchronize {
    ts = TransitionService.transition(@context, _name, _params)

    OpenStruct.new({
      name: _name,
      params: _params,
      doc: ts.document,
      elapsed: ts.elapsed
    })
  }
end

#reloadObject



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

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

#resetObject



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

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