Module: RailsMachine
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/rails_machine.rb,
lib/rails_machine/version.rb,
lib/rails_machine/configuration.rb
Defined Under Namespace
Modules: ClassMethods Classes: Configuration
Constant Summary collapse
- VERSION =
"0.0.2"
Instance Method Summary collapse
Instance Method Details
#allowed_transition ⇒ Object
12 13 14 15 16 17 18 19 20 |
# File 'lib/rails_machine.rb', line 12 def allowed_transition from = self.state_was.to_sym to = self.state.to_sym transitions = (transitions_for(from) + transitions_for(:any)).select { |t| t[:to] == to || t[:to] == :any } errors.add(:state, :transition_not_found) if transitions.empty? errors.add(:state, :guard_failed) if transitions.none? { |t| t[:guards].all? { |guard| guard.call(self) } } end |