Module: Foobara::StateMachine::Validations::ClassMethods
- Defined in:
- foobara-0.0.110/projects/state_machine/src/validations.rb
Instance Method Summary collapse
- #validate_states(computed_states) ⇒ Object
- #validate_terminal_states(computed_terminal_states, all_states) ⇒ Object
- #validate_transitions(computed_transitions) ⇒ Object
Instance Method Details
#validate_states(computed_states) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'foobara-0.0.110/projects/state_machine/src/validations.rb', line 34 def validate_states(computed_states) missing_states = states - computed_states unless missing_states.empty? raise MissingStates, "#{missing_states} is/are explicitly declared as states but do(es)n't appear in the transition map" end extra_states = computed_states - states unless extra_states.empty? raise ExtraStates, "#{extra_states} appeared in the transition map but were not explicitly declared as states" end end |
#validate_terminal_states(computed_terminal_states, all_states) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'foobara-0.0.110/projects/state_machine/src/validations.rb', line 14 def validate_terminal_states(computed_terminal_states, all_states) unexpected_terminal_states = computed_terminal_states - terminal_states unless unexpected_terminal_states.empty? raise UnexpectedTerminalStates, "#{ unexpected_terminal_states } do(es) not have transitions even though they are not in the explicit list of terminal states #{ terminal_states }" end missing_terminal_states = terminal_states - all_states unless missing_terminal_states.empty? raise MissingTerminalStates, "#{ missing_terminal_states } was/were included explicitly in terminal_states but didn't appear in the transition map" end end |
#validate_transitions(computed_transitions) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'foobara-0.0.110/projects/state_machine/src/validations.rb', line 50 def validate_transitions(computed_transitions) missing_transitions = transitions - computed_transitions unless missing_transitions.empty? raise MissingTransitions, "#{ missing_transitions } is/are explicitly declared as transitions but do(es)n't appear in the transition map" end extra_transitions = computed_transitions - transitions unless extra_transitions.empty? raise ExtraTransitions, "#{extra_transitions} appeared in the transition map but were not explicitly declared as transitions" end end |