method
fire_event

v2.3.8 -
Show latest stable
-
0 notes -
Class: ActiveModel::StateMachine::Machine
- 1.0.0
- 1.1.6
- 1.2.6
- 2.0.3
- 2.1.0
- 2.2.1 (0)
- 2.3.8 (0)
- 3.0.0
- 3.0.9
- 3.1.0
- 3.2.1
- 3.2.8
- 3.2.13
- 4.0.2
- 4.1.8
- 4.2.1
- 4.2.7
- 4.2.9
- 5.0.0.1
- 5.1.7
- 5.2.3
- 6.0.0
- 6.1.3.1
- 6.1.7.7
- 7.0.0
- 7.1.3.2
- 7.1.3.4
- What's this?
fire_event(event, record, persist, *args)
public
Hide source
# File activemodel/lib/active_model/state_machine/machine.rb, line 26 def fire_event(event, record, persist, *args) state_index[record.current_state(@name)].call_action(:exit, record) if new_state = @events[event].fire(record, *args) state_index[new_state].call_action(:enter, record) if record.respond_to?(event_fired_callback) record.send(event_fired_callback, record.current_state, new_state) end record.current_state(@name, new_state, persist) record.send(@events[event].success) if @events[event].success true else if record.respond_to?(event_failed_callback) record.send(event_failed_callback, event) end false end end