true state :started state :finished event :start do transition from: :unstarted, to: :started end event :finish do transition from: :started, to: :finished end end
:task delegate :current_state, :trigger!, :available_events, to: :state_machine def state_machine @state_machine ||= TaskStateMachine.new(self, transition_class: TaskTransition) end private def self.transition_class; TaskTransition end def self.initial_state; :unstarted end end