From da0b5e0d477065b2f6da13665325806271181769 Mon Sep 17 00:00:00 2001 From: Ito Tubasa Date: Sun, 25 May 2014 21:18:54 +0900 Subject: [PATCH] move setting initial_state codes to StateMachine class --- lib/aasm/base.rb | 1 - lib/aasm/state_machine.rb | 7 +++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/aasm/base.rb b/lib/aasm/base.rb index de1028b..1a47700 100644 --- a/lib/aasm/base.rb +++ b/lib/aasm/base.rb @@ -31,7 +31,6 @@ module AASM # define a state def state(name, options={}) @state_machine.add_state(name, @klass, options) - @state_machine.initial_state = name if options[:initial] || !@state_machine.initial_state @klass.send(:define_method, "#{name.to_s}?") do aasm.current_state == name diff --git a/lib/aasm/state_machine.rb b/lib/aasm/state_machine.rb index 75f6897..4b8d17e 100644 --- a/lib/aasm/state_machine.rb +++ b/lib/aasm/state_machine.rb @@ -28,8 +28,15 @@ module AASM end def add_state(name, klass, options) + set_initial_state(name, options) @states << AASM::State.new(name, klass, options) unless @states.include?(name) end + private + + def set_initial_state(name, options) + @initial_state = name if options[:initial] || !initial_state + end + end # StateMachine end # AASM