lib/aasm/aasm.rb in aasm-3.0.14 vs lib/aasm/aasm.rb in aasm-3.0.15
- old
+ new
@@ -1,32 +1,32 @@
module AASM
def self.included(base) #:nodoc:
base.extend AASM::ClassMethods
-
- unless AASM::StateMachine[base]
- AASM::StateMachine[base] = AASM::StateMachine.new('')
- end
+ AASM::StateMachine[base] ||= AASM::StateMachine.new('')
AASM::Persistence.set_persistence(base)
super
end
module ClassMethods
+
+ # make sure inheritance (aka subclassing) works with AASM
def inherited(klass)
AASM::StateMachine[klass] = AASM::StateMachine[self].clone
super
end
def aasm(options={}, &block)
@aasm ||= AASM::Base.new(self, options)
- @aasm.instance_eval(&block) if block
+ @aasm.instance_eval(&block) if block # new DSL
@aasm
end
+ # TODO: maybe better: aasm.initial_state
def aasm_initial_state(set_state=nil)
if set_state
- # deprecated
+ # deprecated way to set the value
AASM::StateMachine[self].initial_state = set_state
else
AASM::StateMachine[self].initial_state
end
end
@@ -67,11 +67,12 @@
# deprecated
def aasm_states_for_select
aasm.states_for_select
end
- def aasm_human_event_name(event)
+ # aasm.event(:event_name).human?
+ def aasm_human_event_name(event) # event_name?
AASM::SupportingClasses::Localizer.new.human_event_name(self, event)
end
end # ClassMethods
# this method does what? does it deliver the current state?
@@ -108,10 +109,10 @@
events = self.class.aasm_events.values.select {|event| event.transitions_from_state?(state) }
events.map {|event| event.name}
end
def aasm_human_state
- AASM::SupportingClasses::Localizer.new.human_state(self)
+ AASM::SupportingClasses::Localizer.new.human_state_name(self.class, aasm_current_state)
end
private
def aasm_persistable?