Class: Decider::State
- Inherits:
-
Object
- Object
- Decider::State
- Defined in:
- lib/decider/state.rb
Instance Method Summary collapse
- #call(command, key:, etag: nil) ⇒ Object
-
#initialize(decider:, repository:) ⇒ State
constructor
A new instance of State.
Constructor Details
#initialize(decider:, repository:) ⇒ State
Returns a new instance of State.
5 6 7 8 |
# File 'lib/decider/state.rb', line 5 def initialize(decider:, repository:) @decider = decider @repository = repository end |
Instance Method Details
#call(command, key:, etag: nil) ⇒ Object
10 11 12 13 14 15 16 17 18 19 |
# File 'lib/decider/state.rb', line 10 def call(command, key:, etag: nil) state, etag = repository.try_load(key: key, etag: etag) events = decider.decide(command, state) new_state = events.reduce(state, &decider.method(:evolve)) new_etag = repository.save(new_state, key: key, etag: etag) [events, new_etag] end |