Merge pull request #157 from MichaelXavier/stack-level-too-deep-failed
Fix stack level too deep error due to namespacing
This commit is contained in:
commit
d55dcef93c
|
@ -155,16 +155,16 @@ private
|
||||||
event.fire_callbacks(:before, self)
|
event.fire_callbacks(:before, self)
|
||||||
|
|
||||||
if new_state_name = event.fire(self, *args)
|
if new_state_name = event.fire(self, *args)
|
||||||
fired(event, old_state, new_state_name, options, &block)
|
aasm_fired(event, old_state, new_state_name, options, &block)
|
||||||
else
|
else
|
||||||
failed(event_name, old_state)
|
aasm_failed(event_name, old_state)
|
||||||
end
|
end
|
||||||
rescue StandardError => e
|
rescue StandardError => e
|
||||||
event.fire_callbacks(:error, self, e) || raise(e)
|
event.fire_callbacks(:error, self, e) || raise(e)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def fired(event, old_state, new_state_name, options)
|
def aasm_fired(event, old_state, new_state_name, options)
|
||||||
persist = options[:persist]
|
persist = options[:persist]
|
||||||
|
|
||||||
new_state = aasm.state_object_for_name(new_state_name)
|
new_state = aasm.state_object_for_name(new_state_name)
|
||||||
|
@ -200,7 +200,7 @@ private
|
||||||
persist_successful
|
persist_successful
|
||||||
end
|
end
|
||||||
|
|
||||||
def failed(event_name, old_state)
|
def aasm_failed(event_name, old_state)
|
||||||
if self.respond_to?(:aasm_event_failed)
|
if self.respond_to?(:aasm_event_failed)
|
||||||
self.aasm_event_failed(event_name, old_state.name)
|
self.aasm_event_failed(event_name, old_state.name)
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
class SimpleStateMachine
|
||||||
|
include AASM
|
||||||
|
|
||||||
|
aasm do
|
||||||
|
state :init, :initial => true
|
||||||
|
state :failed
|
||||||
|
|
||||||
|
event :failed do
|
||||||
|
transitions :from => :init, :to => :failed
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "event naming" do
|
||||||
|
let(:state_machine) { SimpleStateMachine.new }
|
||||||
|
|
||||||
|
it "allows an event of failed without blowing the stack" do
|
||||||
|
state_machine.failed
|
||||||
|
|
||||||
|
expect { state_machine.failed }.to raise_error(AASM::InvalidTransition)
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue