Merge branch 'master' of git@github.com:rubyist/aasm
This commit is contained in:
commit
173fa5723b
|
@ -22,7 +22,7 @@ module AASM
|
|||
|
||||
module ClassMethods
|
||||
def inherited(klass)
|
||||
AASM::StateMachine[klass] = AASM::StateMachine[self].dup
|
||||
AASM::StateMachine[klass] = AASM::StateMachine[self].clone
|
||||
super
|
||||
end
|
||||
|
||||
|
|
|
@ -22,6 +22,12 @@ module AASM
|
|||
@config = OpenStruct.new
|
||||
end
|
||||
|
||||
def clone
|
||||
klone = super
|
||||
klone.states = states.clone
|
||||
klone
|
||||
end
|
||||
|
||||
def create_state(name, options)
|
||||
@states << AASM::SupportingClasses::State.new(name, options) unless @states.include?(name)
|
||||
end
|
||||
|
|
|
@ -70,12 +70,21 @@ describe AASM, '- class level definitions' do
|
|||
end
|
||||
|
||||
|
||||
describe AASM, '- when included' do
|
||||
it 'should invoke the original inherited callback when subclassed' do
|
||||
parent = Class.new
|
||||
parent.should_receive(:inherited)
|
||||
parent.send(:include, AASM)
|
||||
child = Class.new(parent)
|
||||
describe AASM, '- subclassing' do
|
||||
before(:each) do
|
||||
@parent = Class.new do
|
||||
include AASM
|
||||
end
|
||||
end
|
||||
|
||||
it 'should invoke the original inherited callback' do
|
||||
@parent.should_receive(:inherited)
|
||||
Class.new(@parent)
|
||||
end
|
||||
|
||||
it 'should have a unique states hash' do
|
||||
child = Class.new(@parent)
|
||||
child.aasm_states.equal?(@parent.aasm_states).should be_false
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in New Issue