Sha256: bf7c05e8ab6d1e5cde98fc56ba1e72fa17f514af71e93fdd5300097727bcde44
Contents?: true
Size: 700 Bytes
Versions: 3
Compression:
Stored size: 700 Bytes
Contents
module SteadyState module Attribute class State < SimpleDelegator attr_accessor :state_machine, :last_valid_value def initialize(state_machine, current_value, last_valid_value) self.state_machine = state_machine self.last_valid_value = last_valid_value super(current_value&.inquiry) end def may_become?(new_value) next_values.include?(new_value) end def next_values @next_values ||= state_machine.transitions[last_valid_value || self] end def previous_values @previous_values ||= state_machine.transitions.select { |_, v| v.include?(last_valid_value || self) }.keys end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
steady_state-1.0.0 | lib/steady_state/attribute/state.rb |
steady_state-0.1.0 | lib/steady_state/attribute/state.rb |
steady_state-0.0.1 | lib/steady_state/attribute/state.rb |