Class: Decider::InMemory
- Inherits:
-
Object
- Object
- Decider::InMemory
- Defined in:
- lib/decider/in_memory.rb
Instance Method Summary collapse
- #call(command) ⇒ Object
-
#initialize(decider) ⇒ InMemory
constructor
A new instance of InMemory.
- #state ⇒ Object
Constructor Details
#initialize(decider) ⇒ InMemory
Returns a new instance of InMemory.
7 8 9 10 |
# File 'lib/decider/in_memory.rb', line 7 def initialize(decider) @decider = decider @atom = Concurrent::Atom.new(decider.initial_state) end |
Instance Method Details
#call(command) ⇒ Object
12 13 14 15 16 |
# File 'lib/decider/in_memory.rb', line 12 def call(command) events = decider.decide(command, state) atom.swap { |state| events.reduce(state, &decider.method(:evolve)) } events end |
#state ⇒ Object
18 19 20 |
# File 'lib/decider/in_memory.rb', line 18 def state atom.value end |