aasm 3.0.16 → 3.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. data/.gitignore +1 -0
  2. data/.travis.yml +2 -1
  3. data/API +34 -0
  4. data/CHANGELOG.md +7 -0
  5. data/Gemfile +1 -1
  6. data/HOWTO +12 -0
  7. data/README.md +57 -4
  8. data/aasm.gemspec +2 -0
  9. data/lib/aasm.rb +5 -4
  10. data/lib/aasm/aasm.rb +50 -75
  11. data/lib/aasm/base.rb +22 -18
  12. data/lib/aasm/event.rb +130 -0
  13. data/lib/aasm/instance_base.rb +87 -0
  14. data/lib/aasm/localizer.rb +54 -0
  15. data/lib/aasm/persistence.rb +22 -14
  16. data/lib/aasm/persistence/active_record_persistence.rb +38 -69
  17. data/lib/aasm/persistence/base.rb +42 -2
  18. data/lib/aasm/persistence/mongoid_persistence.rb +33 -64
  19. data/lib/aasm/state.rb +78 -0
  20. data/lib/aasm/state_machine.rb +2 -2
  21. data/lib/aasm/transition.rb +49 -0
  22. data/lib/aasm/version.rb +1 -1
  23. data/spec/models/active_record/api.rb +75 -0
  24. data/spec/models/auth_machine.rb +1 -1
  25. data/spec/models/bar.rb +15 -0
  26. data/spec/models/foo.rb +34 -0
  27. data/spec/models/mongoid/simple_mongoid.rb +10 -0
  28. data/spec/models/mongoid/{mongoid_models.rb → simple_new_dsl_mongoid.rb} +1 -12
  29. data/spec/models/persistence.rb +2 -1
  30. data/spec/models/this_name_better_not_be_in_use.rb +11 -0
  31. data/spec/schema.rb +1 -1
  32. data/spec/spec_helper.rb +8 -1
  33. data/spec/unit/api_spec.rb +72 -0
  34. data/spec/unit/callbacks_spec.rb +2 -2
  35. data/spec/unit/event_spec.rb +269 -0
  36. data/spec/unit/inspection_spec.rb +43 -5
  37. data/spec/unit/{supporting_classes/localizer_spec.rb → localizer_spec.rb} +2 -2
  38. data/spec/unit/memory_leak_spec.rb +12 -12
  39. data/spec/unit/persistence/active_record_persistence_spec.rb +0 -40
  40. data/spec/unit/persistence/mongoid_persistance_spec.rb +3 -2
  41. data/spec/unit/simple_example_spec.rb +6 -0
  42. data/spec/unit/{supporting_classes/state_spec.rb → state_spec.rb} +2 -2
  43. data/spec/unit/{supporting_classes/state_transition_spec.rb → transition_spec.rb} +18 -18
  44. metadata +127 -38
  45. data/lib/aasm/persistence/read_state.rb +0 -40
  46. data/lib/aasm/supporting_classes/event.rb +0 -146
  47. data/lib/aasm/supporting_classes/localizer.rb +0 -56
  48. data/lib/aasm/supporting_classes/state.rb +0 -80
  49. data/lib/aasm/supporting_classes/state_transition.rb +0 -51
  50. data/spec/spec_helpers/models_spec_helper.rb +0 -64
  51. data/spec/unit/supporting_classes/event_spec.rb +0 -203
@@ -27,6 +27,46 @@ describe 'inspection for common cases' do
27
27
  Foo.aasm.events.should include(:null)
28
28
  end
29
29
 
30
+ context "instance level inspection" do
31
+ let(:foo) { Foo.new }
32
+ let(:two) { FooTwo.new }
33
+
34
+ it "delivers all states" do
35
+ states = foo.aasm.states
36
+ states.should include(:open)
37
+ states.should include(:closed)
38
+
39
+ states = foo.aasm.states(:permissible => true)
40
+ states.should include(:closed)
41
+ states.should_not include(:open)
42
+
43
+ foo.close
44
+ foo.aasm.states(:permissible => true).should be_empty
45
+ end
46
+
47
+ it "delivers all states for subclasses" do
48
+ states = two.aasm.states
49
+ states.should include(:open)
50
+ states.should include(:closed)
51
+ states.should include(:foo)
52
+
53
+ states = two.aasm.states(:permissible => true)
54
+ states.should include(:closed)
55
+ states.should_not include(:open)
56
+
57
+ two.close
58
+ two.aasm.states(:permissible => true).should be_empty
59
+ end
60
+
61
+ it "delivers all events" do
62
+ events = foo.aasm.events
63
+ events.should include(:close)
64
+ events.should include(:null)
65
+ foo.close
66
+ foo.aasm.events.should be_empty
67
+ end
68
+ end
69
+
30
70
  it 'should list states in the order they have been defined' do
31
71
  Conversation.aasm.states.should == [:needs_attention, :read, :closed, :awaiting_response, :junk]
32
72
  end
@@ -67,13 +107,11 @@ describe :aasm_from_states_for_state do
67
107
  end
68
108
  end
69
109
 
70
- describe :aasm_events_for_current_state do
110
+ describe 'permissible events' do
71
111
  let(:foo) {Foo.new}
72
112
 
73
113
  it 'work' do
74
- foo.aasm_events_for_current_state.should include(:close)
75
- foo.aasm_events_for_current_state.should include(:null)
76
- foo.close
77
- foo.aasm_events_for_current_state.should be_empty
114
+ foo.aasm.permissible_events.should include(:close)
115
+ foo.aasm.permissible_events.should_not include(:null)
78
116
  end
79
117
  end
@@ -38,7 +38,7 @@ describe 'localized state names' do
38
38
  end
39
39
  end
40
40
 
41
- describe AASM::SupportingClasses::Localizer, "new style" do
41
+ describe AASM::Localizer, "new style" do
42
42
  before(:all) do
43
43
  I18n.load_path << 'spec/en.yml'
44
44
  I18n.default_locale = :en
@@ -73,7 +73,7 @@ describe AASM::SupportingClasses::Localizer, "new style" do
73
73
  end
74
74
  end
75
75
 
76
- describe AASM::SupportingClasses::Localizer, "deprecated style" do
76
+ describe AASM::Localizer, "deprecated style" do
77
77
  before(:all) do
78
78
  I18n.load_path << 'spec/en_deprecated_style.yml'
79
79
  I18n.default_locale = :en
@@ -12,27 +12,27 @@
12
12
 
13
13
  # it "should be created without memory leak" do
14
14
  # machines_count = machines.size
15
- # state_count = number_of_objects(AASM::SupportingClasses::State)
16
- # event_count = number_of_objects(AASM::SupportingClasses::Event)
15
+ # state_count = number_of_objects(AASM::State)
16
+ # event_count = number_of_objects(AASM::Event)
17
17
  # puts "event_count = #{event_count}"
18
- # transition_count = number_of_objects(AASM::SupportingClasses::StateTransition)
18
+ # transition_count = number_of_objects(AASM::Transition)
19
19
 
20
20
  # load File.expand_path(File.dirname(__FILE__) + '/../models/not_auto_loaded/process.rb')
21
21
  # machines.size.should == machines_count + 1 # + Process
22
22
  # number_of_objects(Models::Process).should == 0
23
- # number_of_objects(AASM::SupportingClasses::State).should == state_count + 3 # + Process
24
- # puts "event_count = #{number_of_objects(AASM::SupportingClasses::Event)}"
25
- # number_of_objects(AASM::SupportingClasses::Event).should == event_count + 2 # + Process
26
- # number_of_objects(AASM::SupportingClasses::StateTransition).should == transition_count + 2 # + Process
23
+ # number_of_objects(AASM::State).should == state_count + 3 # + Process
24
+ # puts "event_count = #{number_of_objects(AASM::Event)}"
25
+ # number_of_objects(AASM::Event).should == event_count + 2 # + Process
26
+ # number_of_objects(AASM::Transition).should == transition_count + 2 # + Process
27
27
 
28
28
  # Models.send(:remove_const, "Process") if Models.const_defined?("Process")
29
29
  # load File.expand_path(File.dirname(__FILE__) + '/../models/not_auto_loaded/process.rb')
30
30
  # machines.size.should == machines_count + 1 # + Process
31
- # number_of_objects(AASM::SupportingClasses::State).should == state_count + 3 # + Process
32
- # # ObjectSpace.each_object(AASM::SupportingClasses::Event) {|o| puts o.inspect}
33
- # puts "event_count = #{number_of_objects(AASM::SupportingClasses::Event)}"
34
- # number_of_objects(AASM::SupportingClasses::Event).should == event_count + 2 # + Process
35
- # number_of_objects(AASM::SupportingClasses::StateTransition).should == transition_count + 2 # + Process
31
+ # number_of_objects(AASM::State).should == state_count + 3 # + Process
32
+ # # ObjectSpace.each_object(AASM::Event) {|o| puts o.inspect}
33
+ # puts "event_count = #{number_of_objects(AASM::Event)}"
34
+ # number_of_objects(AASM::Event).should == event_count + 2 # + Process
35
+ # number_of_objects(AASM::Transition).should == transition_count + 2 # + Process
36
36
  # end
37
37
 
38
38
  # end
@@ -14,46 +14,6 @@ shared_examples_for "aasm model" do
14
14
  end
15
15
  end
16
16
 
17
- describe "class methods for classes without own read or write state" do
18
- let(:klass) {Gate}
19
- it_should_behave_like "aasm model"
20
- it "should include all persistence mixins" do
21
- klass.included_modules.should be_include(AASM::Persistence::ReadState)
22
- klass.included_modules.should be_include(AASM::Persistence::ActiveRecordPersistence::WriteState)
23
- klass.included_modules.should be_include(AASM::Persistence::ActiveRecordPersistence::WriteStateWithoutPersistence)
24
- end
25
- end
26
-
27
- describe "class methods for classes with own read state" do
28
- let(:klass) {Reader}
29
- it_should_behave_like "aasm model"
30
- it "should include all persistence mixins but read state" do
31
- klass.included_modules.should_not be_include(AASM::Persistence::ReadState)
32
- klass.included_modules.should be_include(AASM::Persistence::ActiveRecordPersistence::WriteState)
33
- klass.included_modules.should be_include(AASM::Persistence::ActiveRecordPersistence::WriteStateWithoutPersistence)
34
- end
35
- end
36
-
37
- describe "class methods for classes with own write state" do
38
- let(:klass) {Writer}
39
- it_should_behave_like "aasm model"
40
- it "should include include all persistence mixins but write state" do
41
- klass.included_modules.should be_include(AASM::Persistence::ReadState)
42
- klass.included_modules.should_not be_include(AASM::Persistence::ActiveRecordPersistence::WriteState)
43
- klass.included_modules.should be_include(AASM::Persistence::ActiveRecordPersistence::WriteStateWithoutPersistence)
44
- end
45
- end
46
-
47
- describe "class methods for classes without persistence" do
48
- let(:klass) {Transient}
49
- it_should_behave_like "aasm model"
50
- it "should include all mixins but persistence" do
51
- klass.included_modules.should be_include(AASM::Persistence::ReadState)
52
- klass.included_modules.should be_include(AASM::Persistence::ActiveRecordPersistence::WriteState)
53
- klass.included_modules.should_not be_include(AASM::Persistence::ActiveRecordPersistence::WriteStateWithoutPersistence)
54
- end
55
- end
56
-
57
17
  describe "instance methods" do
58
18
  let(:gate) {Gate.new}
59
19
 
@@ -1,10 +1,11 @@
1
1
  describe 'mongoid', :if => Gem::Version.create(RUBY_VERSION.dup) >= Gem::Version.create('1.9.3') do
2
+ # describe 'mongoid' do
2
3
 
3
4
  before(:all) do
4
5
  require 'mongoid'
5
6
  require 'logger'
6
7
  require 'spec_helper'
7
- require File.dirname(__FILE__) + '/../../models/mongoid/mongoid_models'
8
+ Dir[File.dirname(__FILE__) + "/../../models/mongoid/*.rb"].sort.each { |f| require File.expand_path(f) }
8
9
 
9
10
  # if you want to see the statements while running the spec enable the following line
10
11
  # Mongoid.logger = Logger.new(STDERR)
@@ -123,4 +124,4 @@ describe 'mongoid', :if => Gem::Version.create(RUBY_VERSION.dup) >= Gem::Version
123
124
  end
124
125
 
125
126
  end
126
- end
127
+ end
@@ -50,4 +50,10 @@ describe 'state machine' do
50
50
  lambda {payment.fill_out}.should raise_error(AASM::InvalidTransition)
51
51
  lambda {payment.fill_out!}.should raise_error(AASM::InvalidTransition)
52
52
  end
53
+
54
+ it 'defines constants for each state name' do
55
+ Payment::STATE_INITIALISED.should eq(:initialised)
56
+ Payment::STATE_FILLED_OUT.should eq(:filled_out)
57
+ Payment::STATE_AUTHORISED.should eq(:authorised)
58
+ end
53
59
  end
@@ -1,13 +1,13 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe AASM::SupportingClasses::State do
3
+ describe AASM::State do
4
4
  before(:each) do
5
5
  @name = :astate
6
6
  @options = { :crazy_custom_key => 'key' }
7
7
  end
8
8
 
9
9
  def new_state(options={})
10
- AASM::SupportingClasses::State.new(@name, Conversation, @options.merge(options))
10
+ AASM::State.new(@name, Conversation, @options.merge(options))
11
11
  end
12
12
 
13
13
  it 'should set the name' do
@@ -28,10 +28,10 @@ describe 'transitions' do
28
28
 
29
29
  end
30
30
 
31
- describe AASM::SupportingClasses::StateTransition do
31
+ describe AASM::Transition do
32
32
  it 'should set from, to, and opts attr readers' do
33
33
  opts = {:from => 'foo', :to => 'bar', :guard => 'g'}
34
- st = AASM::SupportingClasses::StateTransition.new(opts)
34
+ st = AASM::Transition.new(opts)
35
35
 
36
36
  st.from.should == opts[:from]
37
37
  st.to.should == opts[:to]
@@ -40,7 +40,7 @@ describe AASM::SupportingClasses::StateTransition do
40
40
 
41
41
  it 'should pass equality check if from and to are the same' do
42
42
  opts = {:from => 'foo', :to => 'bar', :guard => 'g'}
43
- st = AASM::SupportingClasses::StateTransition.new(opts)
43
+ st = AASM::Transition.new(opts)
44
44
 
45
45
  obj = mock('object')
46
46
  obj.stub!(:from).and_return(opts[:from])
@@ -51,7 +51,7 @@ describe AASM::SupportingClasses::StateTransition do
51
51
 
52
52
  it 'should fail equality check if from are not the same' do
53
53
  opts = {:from => 'foo', :to => 'bar', :guard => 'g'}
54
- st = AASM::SupportingClasses::StateTransition.new(opts)
54
+ st = AASM::Transition.new(opts)
55
55
 
56
56
  obj = mock('object')
57
57
  obj.stub!(:from).and_return('blah')
@@ -62,7 +62,7 @@ describe AASM::SupportingClasses::StateTransition do
62
62
 
63
63
  it 'should fail equality check if to are not the same' do
64
64
  opts = {:from => 'foo', :to => 'bar', :guard => 'g'}
65
- st = AASM::SupportingClasses::StateTransition.new(opts)
65
+ st = AASM::Transition.new(opts)
66
66
 
67
67
  obj = mock('object')
68
68
  obj.stub!(:from).and_return(opts[:from])
@@ -72,17 +72,17 @@ describe AASM::SupportingClasses::StateTransition do
72
72
  end
73
73
  end
74
74
 
75
- describe AASM::SupportingClasses::StateTransition, '- when performing guard checks' do
75
+ describe AASM::Transition, '- when performing guard checks' do
76
76
  it 'should return true of there is no guard' do
77
77
  opts = {:from => 'foo', :to => 'bar'}
78
- st = AASM::SupportingClasses::StateTransition.new(opts)
78
+ st = AASM::Transition.new(opts)
79
79
 
80
80
  st.perform(nil).should be_true
81
81
  end
82
82
 
83
83
  it 'should call the method on the object if guard is a symbol' do
84
84
  opts = {:from => 'foo', :to => 'bar', :guard => :test}
85
- st = AASM::SupportingClasses::StateTransition.new(opts)
85
+ st = AASM::Transition.new(opts)
86
86
 
87
87
  obj = mock('object')
88
88
  obj.should_receive(:test)
@@ -92,7 +92,7 @@ describe AASM::SupportingClasses::StateTransition, '- when performing guard chec
92
92
 
93
93
  it 'should call the method on the object if guard is a string' do
94
94
  opts = {:from => 'foo', :to => 'bar', :guard => 'test'}
95
- st = AASM::SupportingClasses::StateTransition.new(opts)
95
+ st = AASM::Transition.new(opts)
96
96
 
97
97
  obj = mock('object')
98
98
  obj.should_receive(:test)
@@ -102,7 +102,7 @@ describe AASM::SupportingClasses::StateTransition, '- when performing guard chec
102
102
 
103
103
  it 'should call the proc passing the object if the guard is a proc' do
104
104
  opts = {:from => 'foo', :to => 'bar', :guard => Proc.new {|o| o.test}}
105
- st = AASM::SupportingClasses::StateTransition.new(opts)
105
+ st = AASM::Transition.new(opts)
106
106
 
107
107
  obj = mock('object')
108
108
  obj.should_receive(:test)
@@ -111,10 +111,10 @@ describe AASM::SupportingClasses::StateTransition, '- when performing guard chec
111
111
  end
112
112
  end
113
113
 
114
- describe AASM::SupportingClasses::StateTransition, '- when executing the transition with a Proc' do
114
+ describe AASM::Transition, '- when executing the transition with a Proc' do
115
115
  it 'should call a Proc on the object with args' do
116
116
  opts = {:from => 'foo', :to => 'bar', :on_transition => Proc.new {|o| o.test}}
117
- st = AASM::SupportingClasses::StateTransition.new(opts)
117
+ st = AASM::Transition.new(opts)
118
118
  args = {:arg1 => '1', :arg2 => '2'}
119
119
  obj = mock('object')
120
120
 
@@ -125,7 +125,7 @@ describe AASM::SupportingClasses::StateTransition, '- when executing the transit
125
125
 
126
126
  it 'should call a Proc on the object without args' do
127
127
  opts = {:from => 'foo', :to => 'bar', :on_transition => Proc.new {||}}
128
- st = AASM::SupportingClasses::StateTransition.new(opts)
128
+ st = AASM::Transition.new(opts)
129
129
  args = {:arg1 => '1', :arg2 => '2'}
130
130
  obj = mock('object')
131
131
 
@@ -135,10 +135,10 @@ describe AASM::SupportingClasses::StateTransition, '- when executing the transit
135
135
  end
136
136
  end
137
137
 
138
- describe AASM::SupportingClasses::StateTransition, '- when executing the transition with an :on_transtion method call' do
138
+ describe AASM::Transition, '- when executing the transition with an :on_transtion method call' do
139
139
  it 'should accept a String for the method name' do
140
140
  opts = {:from => 'foo', :to => 'bar', :on_transition => 'test'}
141
- st = AASM::SupportingClasses::StateTransition.new(opts)
141
+ st = AASM::Transition.new(opts)
142
142
  args = {:arg1 => '1', :arg2 => '2'}
143
143
  obj = mock('object')
144
144
 
@@ -149,7 +149,7 @@ describe AASM::SupportingClasses::StateTransition, '- when executing the transit
149
149
 
150
150
  it 'should accept a Symbol for the method name' do
151
151
  opts = {:from => 'foo', :to => 'bar', :on_transition => :test}
152
- st = AASM::SupportingClasses::StateTransition.new(opts)
152
+ st = AASM::Transition.new(opts)
153
153
  args = {:arg1 => '1', :arg2 => '2'}
154
154
  obj = mock('object')
155
155
 
@@ -160,7 +160,7 @@ describe AASM::SupportingClasses::StateTransition, '- when executing the transit
160
160
 
161
161
  it 'should pass args if the target method accepts them' do
162
162
  opts = {:from => 'foo', :to => 'bar', :on_transition => :test}
163
- st = AASM::SupportingClasses::StateTransition.new(opts)
163
+ st = AASM::Transition.new(opts)
164
164
  args = {:arg1 => '1', :arg2 => '2'}
165
165
  obj = mock('object')
166
166
 
@@ -175,7 +175,7 @@ describe AASM::SupportingClasses::StateTransition, '- when executing the transit
175
175
 
176
176
  it 'should NOT pass args if the target method does NOT accept them' do
177
177
  opts = {:from => 'foo', :to => 'bar', :on_transition => :test}
178
- st = AASM::SupportingClasses::StateTransition.new(opts)
178
+ st = AASM::Transition.new(opts)
179
179
  args = {:arg1 => '1', :arg2 => '2'}
180
180
  obj = mock('object')
181
181
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aasm
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.16
4
+ version: 3.0.17
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -12,11 +12,11 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2013-01-16 00:00:00.000000000Z
15
+ date: 2013-04-28 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: activerecord
19
- requirement: &70169537118900 !ruby/object:Gem::Requirement
19
+ requirement: !ruby/object:Gem::Requirement
20
20
  none: false
21
21
  requirements:
22
22
  - - ! '>='
@@ -24,10 +24,31 @@ dependencies:
24
24
  version: '0'
25
25
  type: :development
26
26
  prerelease: false
27
- version_requirements: *70169537118900
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ - !ruby/object:Gem::Dependency
34
+ name: mongoid
35
+ requirement: !ruby/object:Gem::Requirement
36
+ none: false
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ type: :development
42
+ prerelease: false
43
+ version_requirements: !ruby/object:Gem::Requirement
44
+ none: false
45
+ requirements:
46
+ - - ! '>='
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
28
49
  - !ruby/object:Gem::Dependency
29
50
  name: rake
30
- requirement: &70169537117620 !ruby/object:Gem::Requirement
51
+ requirement: !ruby/object:Gem::Requirement
31
52
  none: false
32
53
  requirements:
33
54
  - - ! '>='
@@ -35,10 +56,15 @@ dependencies:
35
56
  version: '0'
36
57
  type: :development
37
58
  prerelease: false
38
- version_requirements: *70169537117620
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ none: false
61
+ requirements:
62
+ - - ! '>='
63
+ - !ruby/object:Gem::Version
64
+ version: '0'
39
65
  - !ruby/object:Gem::Dependency
40
66
  name: sdoc
41
- requirement: &70169537117180 !ruby/object:Gem::Requirement
67
+ requirement: !ruby/object:Gem::Requirement
42
68
  none: false
43
69
  requirements:
44
70
  - - ! '>='
@@ -46,10 +72,15 @@ dependencies:
46
72
  version: '0'
47
73
  type: :development
48
74
  prerelease: false
49
- version_requirements: *70169537117180
75
+ version_requirements: !ruby/object:Gem::Requirement
76
+ none: false
77
+ requirements:
78
+ - - ! '>='
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
50
81
  - !ruby/object:Gem::Dependency
51
82
  name: rspec
52
- requirement: &70169537116680 !ruby/object:Gem::Requirement
83
+ requirement: !ruby/object:Gem::Requirement
53
84
  none: false
54
85
  requirements:
55
86
  - - ~>
@@ -57,10 +88,15 @@ dependencies:
57
88
  version: '2.0'
58
89
  type: :development
59
90
  prerelease: false
60
- version_requirements: *70169537116680
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ none: false
93
+ requirements:
94
+ - - ~>
95
+ - !ruby/object:Gem::Version
96
+ version: '2.0'
61
97
  - !ruby/object:Gem::Dependency
62
98
  name: rr
63
- requirement: &70169537116260 !ruby/object:Gem::Requirement
99
+ requirement: !ruby/object:Gem::Requirement
64
100
  none: false
65
101
  requirements:
66
102
  - - ! '>='
@@ -68,10 +104,15 @@ dependencies:
68
104
  version: '0'
69
105
  type: :development
70
106
  prerelease: false
71
- version_requirements: *70169537116260
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ none: false
109
+ requirements:
110
+ - - ! '>='
111
+ - !ruby/object:Gem::Version
112
+ version: '0'
72
113
  - !ruby/object:Gem::Dependency
73
114
  name: shoulda
74
- requirement: &70169537147800 !ruby/object:Gem::Requirement
115
+ requirement: !ruby/object:Gem::Requirement
75
116
  none: false
76
117
  requirements:
77
118
  - - ! '>='
@@ -79,10 +120,15 @@ dependencies:
79
120
  version: '0'
80
121
  type: :development
81
122
  prerelease: false
82
- version_requirements: *70169537147800
123
+ version_requirements: !ruby/object:Gem::Requirement
124
+ none: false
125
+ requirements:
126
+ - - ! '>='
127
+ - !ruby/object:Gem::Version
128
+ version: '0'
83
129
  - !ruby/object:Gem::Dependency
84
130
  name: sqlite3
85
- requirement: &70169537147380 !ruby/object:Gem::Requirement
131
+ requirement: !ruby/object:Gem::Requirement
86
132
  none: false
87
133
  requirements:
88
134
  - - ! '>='
@@ -90,10 +136,15 @@ dependencies:
90
136
  version: '0'
91
137
  type: :development
92
138
  prerelease: false
93
- version_requirements: *70169537147380
139
+ version_requirements: !ruby/object:Gem::Requirement
140
+ none: false
141
+ requirements:
142
+ - - ! '>='
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
94
145
  - !ruby/object:Gem::Dependency
95
146
  name: minitest
96
- requirement: &70169537146960 !ruby/object:Gem::Requirement
147
+ requirement: !ruby/object:Gem::Requirement
97
148
  none: false
98
149
  requirements:
99
150
  - - ! '>='
@@ -101,10 +152,15 @@ dependencies:
101
152
  version: '0'
102
153
  type: :development
103
154
  prerelease: false
104
- version_requirements: *70169537146960
155
+ version_requirements: !ruby/object:Gem::Requirement
156
+ none: false
157
+ requirements:
158
+ - - ! '>='
159
+ - !ruby/object:Gem::Version
160
+ version: '0'
105
161
  - !ruby/object:Gem::Dependency
106
162
  name: ruby-debug-completion
107
- requirement: &70169537146540 !ruby/object:Gem::Requirement
163
+ requirement: !ruby/object:Gem::Requirement
108
164
  none: false
109
165
  requirements:
110
166
  - - ! '>='
@@ -112,7 +168,28 @@ dependencies:
112
168
  version: '0'
113
169
  type: :development
114
170
  prerelease: false
115
- version_requirements: *70169537146540
171
+ version_requirements: !ruby/object:Gem::Requirement
172
+ none: false
173
+ requirements:
174
+ - - ! '>='
175
+ - !ruby/object:Gem::Version
176
+ version: '0'
177
+ - !ruby/object:Gem::Dependency
178
+ name: coveralls
179
+ requirement: !ruby/object:Gem::Requirement
180
+ none: false
181
+ requirements:
182
+ - - ! '>='
183
+ - !ruby/object:Gem::Version
184
+ version: '0'
185
+ type: :development
186
+ prerelease: false
187
+ version_requirements: !ruby/object:Gem::Requirement
188
+ none: false
189
+ requirements:
190
+ - - ! '>='
191
+ - !ruby/object:Gem::Version
192
+ version: '0'
116
193
  description: AASM is a continuation of the acts as state machine rails plugin, built
117
194
  for plain Ruby objects.
118
195
  email: scott@elitists.net, ttilley@gmail.com, aasm@mt7.de
@@ -123,8 +200,10 @@ files:
123
200
  - .document
124
201
  - .gitignore
125
202
  - .travis.yml
203
+ - API
126
204
  - CHANGELOG.md
127
205
  - Gemfile
206
+ - HOWTO
128
207
  - LICENSE
129
208
  - README.md
130
209
  - Rakefile
@@ -134,53 +213,58 @@ files:
134
213
  - lib/aasm/base.rb
135
214
  - lib/aasm/deprecated/aasm.rb
136
215
  - lib/aasm/errors.rb
216
+ - lib/aasm/event.rb
217
+ - lib/aasm/instance_base.rb
218
+ - lib/aasm/localizer.rb
137
219
  - lib/aasm/persistence.rb
138
220
  - lib/aasm/persistence/active_record_persistence.rb
139
221
  - lib/aasm/persistence/base.rb
140
222
  - lib/aasm/persistence/mongoid_persistence.rb
141
- - lib/aasm/persistence/read_state.rb
223
+ - lib/aasm/state.rb
142
224
  - lib/aasm/state_machine.rb
143
- - lib/aasm/supporting_classes/event.rb
144
- - lib/aasm/supporting_classes/localizer.rb
145
- - lib/aasm/supporting_classes/state.rb
146
- - lib/aasm/supporting_classes/state_transition.rb
225
+ - lib/aasm/transition.rb
147
226
  - lib/aasm/version.rb
148
227
  - spec/database.yml
149
228
  - spec/en.yml
150
229
  - spec/en_deprecated_style.yml
230
+ - spec/models/active_record/api.rb
151
231
  - spec/models/argument.rb
152
232
  - spec/models/auth_machine.rb
233
+ - spec/models/bar.rb
153
234
  - spec/models/callback_new_dsl.rb
154
235
  - spec/models/callback_old_dsl.rb
155
236
  - spec/models/conversation.rb
237
+ - spec/models/foo.rb
156
238
  - spec/models/invalid_persistor.rb
157
- - spec/models/mongoid/mongoid_models.rb
239
+ - spec/models/mongoid/simple_mongoid.rb
240
+ - spec/models/mongoid/simple_new_dsl_mongoid.rb
158
241
  - spec/models/not_auto_loaded/process.rb
159
242
  - spec/models/parametrised_event.rb
160
243
  - spec/models/persistence.rb
161
244
  - spec/models/process_with_new_dsl.rb
162
245
  - spec/models/silencer.rb
163
246
  - spec/models/sub_classing.rb
247
+ - spec/models/this_name_better_not_be_in_use.rb
164
248
  - spec/models/transactor.rb
165
249
  - spec/models/validator.rb
166
250
  - spec/models/worker.rb
167
251
  - spec/schema.rb
168
252
  - spec/spec_helper.rb
169
- - spec/spec_helpers/models_spec_helper.rb
253
+ - spec/unit/api_spec.rb
170
254
  - spec/unit/callbacks_spec.rb
171
255
  - spec/unit/complex_example_spec.rb
256
+ - spec/unit/event_spec.rb
172
257
  - spec/unit/initial_state_spec.rb
173
258
  - spec/unit/inspection_spec.rb
259
+ - spec/unit/localizer_spec.rb
174
260
  - spec/unit/memory_leak_spec.rb
175
261
  - spec/unit/new_dsl_spec.rb
176
262
  - spec/unit/persistence/active_record_persistence_spec.rb
177
263
  - spec/unit/persistence/mongoid_persistance_spec.rb
178
264
  - spec/unit/simple_example_spec.rb
265
+ - spec/unit/state_spec.rb
179
266
  - spec/unit/subclassing_spec.rb
180
- - spec/unit/supporting_classes/event_spec.rb
181
- - spec/unit/supporting_classes/localizer_spec.rb
182
- - spec/unit/supporting_classes/state_spec.rb
183
- - spec/unit/supporting_classes/state_transition_spec.rb
267
+ - spec/unit/transition_spec.rb
184
268
  homepage: https://github.com/aasm/aasm
185
269
  licenses:
186
270
  - MIT
@@ -202,7 +286,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
202
286
  version: '0'
203
287
  requirements: []
204
288
  rubyforge_project:
205
- rubygems_version: 1.8.15
289
+ rubygems_version: 1.8.24
206
290
  signing_key:
207
291
  specification_version: 3
208
292
  summary: State machine mixin for Ruby objects
@@ -210,36 +294,41 @@ test_files:
210
294
  - spec/database.yml
211
295
  - spec/en.yml
212
296
  - spec/en_deprecated_style.yml
297
+ - spec/models/active_record/api.rb
213
298
  - spec/models/argument.rb
214
299
  - spec/models/auth_machine.rb
300
+ - spec/models/bar.rb
215
301
  - spec/models/callback_new_dsl.rb
216
302
  - spec/models/callback_old_dsl.rb
217
303
  - spec/models/conversation.rb
304
+ - spec/models/foo.rb
218
305
  - spec/models/invalid_persistor.rb
219
- - spec/models/mongoid/mongoid_models.rb
306
+ - spec/models/mongoid/simple_mongoid.rb
307
+ - spec/models/mongoid/simple_new_dsl_mongoid.rb
220
308
  - spec/models/not_auto_loaded/process.rb
221
309
  - spec/models/parametrised_event.rb
222
310
  - spec/models/persistence.rb
223
311
  - spec/models/process_with_new_dsl.rb
224
312
  - spec/models/silencer.rb
225
313
  - spec/models/sub_classing.rb
314
+ - spec/models/this_name_better_not_be_in_use.rb
226
315
  - spec/models/transactor.rb
227
316
  - spec/models/validator.rb
228
317
  - spec/models/worker.rb
229
318
  - spec/schema.rb
230
319
  - spec/spec_helper.rb
231
- - spec/spec_helpers/models_spec_helper.rb
320
+ - spec/unit/api_spec.rb
232
321
  - spec/unit/callbacks_spec.rb
233
322
  - spec/unit/complex_example_spec.rb
323
+ - spec/unit/event_spec.rb
234
324
  - spec/unit/initial_state_spec.rb
235
325
  - spec/unit/inspection_spec.rb
326
+ - spec/unit/localizer_spec.rb
236
327
  - spec/unit/memory_leak_spec.rb
237
328
  - spec/unit/new_dsl_spec.rb
238
329
  - spec/unit/persistence/active_record_persistence_spec.rb
239
330
  - spec/unit/persistence/mongoid_persistance_spec.rb
240
331
  - spec/unit/simple_example_spec.rb
332
+ - spec/unit/state_spec.rb
241
333
  - spec/unit/subclassing_spec.rb
242
- - spec/unit/supporting_classes/event_spec.rb
243
- - spec/unit/supporting_classes/localizer_spec.rb
244
- - spec/unit/supporting_classes/state_spec.rb
245
- - spec/unit/supporting_classes/state_transition_spec.rb
334
+ - spec/unit/transition_spec.rb