mirror of
https://github.com/aasm/aasm
synced 2023-03-27 23:22:41 -04:00
SM support events
instance methods consistently use self.class.aasm_ rather than going through SMFactory
This commit is contained in:
parent
cf2bd90cfb
commit
bafbe77fb5
2 changed files with 7 additions and 5 deletions
10
lib/aasm.rb
10
lib/aasm.rb
|
@ -37,8 +37,10 @@ module AASM
|
||||||
end
|
end
|
||||||
|
|
||||||
def aasm_event(name, options = {}, &block)
|
def aasm_event(name, options = {}, &block)
|
||||||
unless aasm_events.has_key?(name)
|
sm = AASM::StateMachineFactory[self]
|
||||||
aasm_events[name] = AASM::SupportingClasses::Event.new(name, options, &block)
|
|
||||||
|
unless sm.events.has_key?(name)
|
||||||
|
sm.events[name] = AASM::SupportingClasses::Event.new(name, options, &block)
|
||||||
end
|
end
|
||||||
|
|
||||||
define_method("#{name.to_s}!") do
|
define_method("#{name.to_s}!") do
|
||||||
|
@ -55,7 +57,7 @@ module AASM
|
||||||
end
|
end
|
||||||
|
|
||||||
def aasm_events
|
def aasm_events
|
||||||
@aasm_events ||= {}
|
AASM::StateMachineFactory[self].events
|
||||||
end
|
end
|
||||||
|
|
||||||
def aasm_states_for_select
|
def aasm_states_for_select
|
||||||
|
@ -100,7 +102,7 @@ module AASM
|
||||||
end
|
end
|
||||||
|
|
||||||
def aasm_state_object_for_state(name)
|
def aasm_state_object_for_state(name)
|
||||||
AASM::StateMachineFactory[self.class].states.find {|s| s == name}
|
self.class.aasm_states.find {|s| s == name}
|
||||||
end
|
end
|
||||||
|
|
||||||
def aasm_fire_event(name, persist)
|
def aasm_fire_event(name, persist)
|
||||||
|
|
|
@ -11,7 +11,7 @@ module AASM
|
||||||
@name = name
|
@name = name
|
||||||
@initial_state = nil
|
@initial_state = nil
|
||||||
@states = []
|
@states = []
|
||||||
@events = []
|
@events = {}
|
||||||
end
|
end
|
||||||
|
|
||||||
def create_state(name, options)
|
def create_state(name, options)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue