mirror of
https://github.com/aasm/aasm
synced 2023-03-27 23:22:41 -04:00
Fix: method is too long for aasm_fire_event
This commit is contained in:
parent
ee212acd30
commit
d65df64db6
1 changed files with 22 additions and 17 deletions
|
@ -99,25 +99,10 @@ private
|
||||||
begin
|
begin
|
||||||
old_state = aasm(state_machine_name).state_object_for_name(aasm(state_machine_name).current_state)
|
old_state = aasm(state_machine_name).state_object_for_name(aasm(state_machine_name).current_state)
|
||||||
|
|
||||||
event.fire_global_callbacks(
|
fire_default_callbacks(event, *process_args(event, aasm(state_machine_name).current_state, *args))
|
||||||
:before_all_events,
|
|
||||||
self,
|
|
||||||
*process_args(event, aasm(state_machine_name).current_state, *args)
|
|
||||||
)
|
|
||||||
|
|
||||||
# new event before callback
|
|
||||||
event.fire_callbacks(
|
|
||||||
:before,
|
|
||||||
self,
|
|
||||||
*process_args(event, aasm(state_machine_name).current_state, *args)
|
|
||||||
)
|
|
||||||
|
|
||||||
if may_fire_to = event.may_fire?(self, *args)
|
if may_fire_to = event.may_fire?(self, *args)
|
||||||
old_state.fire_callbacks(:before_exit, self,
|
fire_exit_callbacks(old_state, *process_args(event, aasm(state_machine_name).current_state, *args))
|
||||||
*process_args(event, aasm(state_machine_name).current_state, *args))
|
|
||||||
old_state.fire_callbacks(:exit, self,
|
|
||||||
*process_args(event, aasm(state_machine_name).current_state, *args))
|
|
||||||
|
|
||||||
if new_state_name = event.fire(self, {:may_fire => may_fire_to}, *args)
|
if new_state_name = event.fire(self, {:may_fire => may_fire_to}, *args)
|
||||||
aasm_fired(state_machine_name, event, old_state, new_state_name, options, *args, &block)
|
aasm_fired(state_machine_name, event, old_state, new_state_name, options, *args, &block)
|
||||||
else
|
else
|
||||||
|
@ -137,6 +122,26 @@ private
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def fire_default_callbacks(event, *processed_args)
|
||||||
|
event.fire_global_callbacks(
|
||||||
|
:before_all_events,
|
||||||
|
self,
|
||||||
|
*processed_args
|
||||||
|
)
|
||||||
|
|
||||||
|
# new event before callback
|
||||||
|
event.fire_callbacks(
|
||||||
|
:before,
|
||||||
|
self,
|
||||||
|
*processed_args
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
def fire_exit_callbacks(old_state, *processed_args)
|
||||||
|
old_state.fire_callbacks(:before_exit, self, *processed_args)
|
||||||
|
old_state.fire_callbacks(:exit, self, *processed_args)
|
||||||
|
end
|
||||||
|
|
||||||
def aasm_fired(state_machine_name, event, old_state, new_state_name, options, *args)
|
def aasm_fired(state_machine_name, event, old_state, new_state_name, options, *args)
|
||||||
persist = options[:persist]
|
persist = options[:persist]
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue