aasm 4.11.1 → 4.12.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +15 -16
  3. data/Appraisals +44 -0
  4. data/CHANGELOG.md +14 -0
  5. data/CONTRIBUTING.md +24 -0
  6. data/Gemfile +4 -21
  7. data/README.md +53 -32
  8. data/Rakefile +6 -1
  9. data/TESTING.md +25 -0
  10. data/aasm.gemspec +3 -0
  11. data/gemfiles/rails_3.2.gemfile +13 -0
  12. data/gemfiles/rails_4.0.gemfile +8 -9
  13. data/gemfiles/rails_4.2.gemfile +9 -9
  14. data/gemfiles/rails_4.2_mongoid_5.gemfile +5 -9
  15. data/gemfiles/rails_5.0.gemfile +7 -16
  16. data/lib/aasm/aasm.rb +9 -3
  17. data/lib/aasm/base.rb +3 -1
  18. data/lib/aasm/configuration.rb +4 -0
  19. data/lib/aasm/core/event.rb +17 -3
  20. data/lib/aasm/core/state.rb +7 -0
  21. data/lib/aasm/core/transition.rb +9 -0
  22. data/lib/aasm/persistence.rb +0 -3
  23. data/lib/aasm/persistence/active_record_persistence.rb +1 -1
  24. data/lib/aasm/persistence/mongoid_persistence.rb +48 -9
  25. data/lib/aasm/state_machine.rb +4 -2
  26. data/lib/aasm/state_machine_store.rb +5 -2
  27. data/lib/aasm/version.rb +1 -1
  28. data/lib/motion-aasm.rb +0 -1
  29. data/spec/generators/active_record_generator_spec.rb +42 -39
  30. data/spec/generators/mongoid_generator_spec.rb +4 -6
  31. data/spec/models/{invalid_persistor.rb → active_record/invalid_persistor.rb} +0 -2
  32. data/spec/models/{silent_persistor.rb → active_record/silent_persistor.rb} +0 -2
  33. data/spec/models/{transactor.rb → active_record/transactor.rb} +0 -2
  34. data/spec/models/{validator.rb → active_record/validator.rb} +0 -2
  35. data/spec/models/{worker.rb → active_record/worker.rb} +0 -0
  36. data/spec/models/callbacks/basic.rb +5 -2
  37. data/spec/models/guard_with_params.rb +1 -1
  38. data/spec/models/mongoid/invalid_persistor_mongoid.rb +39 -0
  39. data/spec/models/mongoid/silent_persistor_mongoid.rb +39 -0
  40. data/spec/models/mongoid/validator_mongoid.rb +100 -0
  41. data/spec/models/multiple_transitions_that_differ_only_by_guard.rb +31 -0
  42. data/spec/models/parametrised_event.rb +7 -0
  43. data/spec/models/simple_multiple_example.rb +12 -0
  44. data/spec/models/sub_class.rb +34 -0
  45. data/spec/spec_helper.rb +0 -33
  46. data/spec/spec_helpers/active_record.rb +7 -0
  47. data/spec/spec_helpers/dynamoid.rb +33 -0
  48. data/spec/spec_helpers/mongoid.rb +7 -0
  49. data/spec/spec_helpers/redis.rb +7 -0
  50. data/spec/spec_helpers/remove_warnings.rb +1 -0
  51. data/spec/spec_helpers/sequel.rb +7 -0
  52. data/spec/unit/api_spec.rb +76 -73
  53. data/spec/unit/callbacks_spec.rb +5 -0
  54. data/spec/unit/event_spec.rb +12 -0
  55. data/spec/unit/guard_with_params_spec.rb +4 -0
  56. data/spec/unit/localizer_spec.rb +55 -53
  57. data/spec/unit/multiple_transitions_that_differ_only_by_guard_spec.rb +14 -0
  58. data/spec/unit/override_warning_spec.rb +8 -0
  59. data/spec/unit/persistence/active_record_persistence_multiple_spec.rb +452 -448
  60. data/spec/unit/persistence/active_record_persistence_spec.rb +523 -501
  61. data/spec/unit/persistence/dynamoid_persistence_multiple_spec.rb +4 -9
  62. data/spec/unit/persistence/dynamoid_persistence_spec.rb +4 -9
  63. data/spec/unit/persistence/mongoid_persistence_multiple_spec.rb +83 -9
  64. data/spec/unit/persistence/mongoid_persistence_spec.rb +85 -9
  65. data/spec/unit/persistence/redis_persistence_spec.rb +3 -7
  66. data/spec/unit/persistence/sequel_persistence_multiple_spec.rb +4 -9
  67. data/spec/unit/persistence/sequel_persistence_spec.rb +4 -9
  68. data/spec/unit/simple_multiple_example_spec.rb +28 -0
  69. data/spec/unit/subclassing_multiple_spec.rb +37 -2
  70. data/spec/unit/subclassing_spec.rb +17 -2
  71. metadata +66 -28
  72. data/gemfiles/rails_3.2_stable.gemfile +0 -15
  73. data/gemfiles/rails_4.0_mongo_mapper.gemfile +0 -16
  74. data/gemfiles/rails_4.2_mongo_mapper.gemfile +0 -17
  75. data/lib/aasm/persistence/mongo_mapper_persistence.rb +0 -163
  76. data/spec/models/mongo_mapper/complex_mongo_mapper_example.rb +0 -37
  77. data/spec/models/mongo_mapper/no_scope_mongo_mapper.rb +0 -21
  78. data/spec/models/mongo_mapper/simple_mongo_mapper.rb +0 -23
  79. data/spec/models/mongo_mapper/simple_new_dsl_mongo_mapper.rb +0 -25
  80. data/spec/unit/persistence/mongo_mapper_persistence_multiple_spec.rb +0 -149
  81. data/spec/unit/persistence/mongo_mapper_persistence_spec.rb +0 -96
@@ -1,8 +1,7 @@
1
- describe 'dynamoid' do
2
- begin
3
- require 'dynamoid'
4
- require 'logger'
5
- require 'spec_helper'
1
+ require 'spec_helper'
2
+
3
+ if defined?(Dynamoid)
4
+ describe 'dynamoid' do
6
5
 
7
6
  Dir[File.dirname(__FILE__) + "/../../models/dynamoid/*.rb"].sort.each do |f|
8
7
  require File.expand_path(f)
@@ -132,9 +131,5 @@ describe 'dynamoid' do
132
131
  end
133
132
  end
134
133
 
135
- rescue LoadError
136
- puts "------------------------------------------------------------------------"
137
- puts "Not running Dynamoid multiple-specs because dynamoid gem is not installed!!!"
138
- puts "------------------------------------------------------------------------"
139
134
  end
140
135
  end
@@ -1,8 +1,7 @@
1
- describe 'dynamoid' do
2
- begin
3
- require 'dynamoid'
4
- require 'logger'
5
- require 'spec_helper'
1
+ require 'spec_helper'
2
+
3
+ if defined?(Dynamoid)
4
+ describe 'dynamoid' do
6
5
 
7
6
  Dir[File.dirname(__FILE__) + "/../../models/dynamoid/*.rb"].sort.each do |f|
8
7
  require File.expand_path(f)
@@ -81,9 +80,5 @@ describe 'dynamoid' do
81
80
  end
82
81
  end
83
82
 
84
- rescue LoadError
85
- puts "------------------------------------------------------------------------"
86
- puts "Not running Dynamoid specs because dynamoid gem is not installed!!!"
87
- puts "------------------------------------------------------------------------"
88
83
  end
89
84
  end
@@ -1,8 +1,7 @@
1
- describe 'mongoid' do
2
- begin
3
- require 'mongoid'
4
- require 'logger'
5
- require 'spec_helper'
1
+ require 'spec_helper'
2
+
3
+ if defined?(Mongoid::Document)
4
+ describe 'mongoid' do
6
5
 
7
6
  Dir[File.dirname(__FILE__) + "/../../models/mongoid/*.rb"].sort.each do |f|
8
7
  require File.expand_path(f)
@@ -72,6 +71,85 @@ describe 'mongoid' do
72
71
 
73
72
  end
74
73
 
74
+ describe 'transitions with persistence' do
75
+
76
+ it "should work for valid models" do
77
+ valid_object = MultipleValidatorMongoid.create(:name => 'name')
78
+ expect(valid_object).to be_sleeping
79
+ valid_object.status = :running
80
+ expect(valid_object).to be_running
81
+ end
82
+
83
+ it 'should not store states for invalid models' do
84
+ validator = MultipleValidatorMongoid.create(:name => 'name')
85
+ expect(validator).to be_valid
86
+ expect(validator).to be_sleeping
87
+
88
+ validator.name = nil
89
+ expect(validator).not_to be_valid
90
+ expect { validator.run! }.to raise_error(Mongoid::Errors::Validations)
91
+ expect(validator).to be_sleeping
92
+
93
+ validator.reload
94
+ expect(validator).not_to be_running
95
+ expect(validator).to be_sleeping
96
+
97
+ validator.name = 'another name'
98
+ expect(validator).to be_valid
99
+ expect(validator.run!).to be_truthy
100
+ expect(validator).to be_running
101
+
102
+ validator.reload
103
+ expect(validator).to be_running
104
+ expect(validator).not_to be_sleeping
105
+ end
106
+
107
+ it 'should not store states for invalid models silently if configured' do
108
+ validator = MultipleSilentPersistorMongoid.create(:name => 'name')
109
+ expect(validator).to be_valid
110
+ expect(validator).to be_sleeping
111
+
112
+ validator.name = nil
113
+ expect(validator).not_to be_valid
114
+ expect(validator.run!).to be_falsey
115
+ expect(validator).to be_sleeping
116
+
117
+ validator.reload
118
+ expect(validator).not_to be_running
119
+ expect(validator).to be_sleeping
120
+
121
+ validator.name = 'another name'
122
+ expect(validator).to be_valid
123
+ expect(validator.run!).to be_truthy
124
+ expect(validator).to be_running
125
+
126
+ validator.reload
127
+ expect(validator).to be_running
128
+ expect(validator).not_to be_sleeping
129
+ end
130
+
131
+ it 'should store states for invalid models if configured' do
132
+ persistor = MultipleInvalidPersistorMongoid.create(:name => 'name')
133
+ expect(persistor).to be_valid
134
+ expect(persistor).to be_sleeping
135
+
136
+ persistor.name = nil
137
+ expect(persistor).not_to be_valid
138
+ expect(persistor.run!).to be_truthy
139
+ expect(persistor).to be_running
140
+
141
+ persistor = MultipleInvalidPersistorMongoid.find(persistor.id)
142
+ persistor.valid?
143
+ expect(persistor).to be_valid
144
+ expect(persistor).to be_running
145
+ expect(persistor).not_to be_sleeping
146
+
147
+ persistor.reload
148
+ expect(persistor).to be_running
149
+ expect(persistor).not_to be_sleeping
150
+ end
151
+ end
152
+
75
153
  describe "complex example" do
76
154
  it "works" do
77
155
  record = ComplexMongoidExample.new
@@ -122,9 +200,5 @@ describe 'mongoid' do
122
200
  end
123
201
  end
124
202
 
125
- rescue LoadError
126
- puts "--------------------------------------------------------------------------"
127
- puts "Not running Mongoid multiple-specs because mongoid gem is not installed!!!"
128
- puts "--------------------------------------------------------------------------"
129
203
  end
130
204
  end
@@ -1,8 +1,7 @@
1
- describe 'mongoid' do
2
- begin
3
- require 'mongoid'
4
- require 'logger'
5
- require 'spec_helper'
1
+ require 'spec_helper'
2
+
3
+ if defined?(Mongoid::Document)
4
+ describe 'mongoid' do
6
5
 
7
6
  Dir[File.dirname(__FILE__) + "/../../models/mongoid/*.rb"].sort.each do |f|
8
7
  require File.expand_path(f)
@@ -85,9 +84,86 @@ describe 'mongoid' do
85
84
 
86
85
  end
87
86
 
88
- rescue LoadError
89
- puts "--------------------------------------------------------------------------"
90
- puts "Not running Mongoid specs because mongoid gem is not installed!!!"
91
- puts "--------------------------------------------------------------------------"
87
+ describe 'transitions with persistence' do
88
+
89
+ it 'should work for valid models' do
90
+ valid_object = ValidatorMongoid.create(:name => 'name')
91
+ expect(valid_object).to be_sleeping
92
+ valid_object.status = :running
93
+ expect(valid_object).to be_running
94
+ end
95
+
96
+ it 'should not store states for invalid models' do
97
+ validator = ValidatorMongoid.create(:name => 'name')
98
+ expect(validator).to be_valid
99
+ expect(validator).to be_sleeping
100
+
101
+ validator.name = nil
102
+ expect(validator).not_to be_valid
103
+ expect { validator.run! }.to raise_error(Mongoid::Errors::Validations)
104
+ expect(validator).to be_sleeping
105
+
106
+ validator.reload
107
+ expect(validator).not_to be_running
108
+ expect(validator).to be_sleeping
109
+
110
+ validator.name = 'another name'
111
+ expect(validator).to be_valid
112
+ expect(validator.run!).to be_truthy
113
+ expect(validator).to be_running
114
+
115
+ validator.reload
116
+ expect(validator).to be_running
117
+ expect(validator).not_to be_sleeping
118
+ end
119
+
120
+ it 'should not store states for invalid models silently if configured' do
121
+ validator = SilentPersistorMongoid.create(:name => 'name')
122
+ expect(validator).to be_valid
123
+ expect(validator).to be_sleeping
124
+
125
+ validator.name = nil
126
+ expect(validator).not_to be_valid
127
+ expect(validator.run!).to be_falsey
128
+ expect(validator).to be_sleeping
129
+
130
+ validator.reload
131
+ expect(validator).not_to be_running
132
+ expect(validator).to be_sleeping
133
+
134
+ validator.name = 'another name'
135
+ expect(validator).to be_valid
136
+ expect(validator.run!).to be_truthy
137
+ expect(validator).to be_running
138
+
139
+ validator.reload
140
+ expect(validator).to be_running
141
+ expect(validator).not_to be_sleeping
142
+ end
143
+
144
+ it 'should store states for invalid models if configured' do
145
+ persistor = InvalidPersistorMongoid.create(:name => 'name')
146
+ expect(persistor).to be_valid
147
+ expect(persistor).to be_sleeping
148
+
149
+ persistor.name = nil
150
+
151
+ expect(persistor).not_to be_valid
152
+ expect(persistor.run!).to be_truthy
153
+ expect(persistor).to be_running
154
+
155
+ persistor = InvalidPersistorMongoid.find(persistor.id)
156
+
157
+ persistor.valid?
158
+ expect(persistor).to be_valid
159
+ expect(persistor).to be_running
160
+ expect(persistor).not_to be_sleeping
161
+
162
+ persistor.reload
163
+ expect(persistor).to be_running
164
+ expect(persistor).not_to be_sleeping
165
+ end
166
+ end
167
+
92
168
  end
93
169
  end
@@ -1,9 +1,7 @@
1
+ require 'spec_helper'
1
2
 
2
- describe 'redis' do
3
- begin
4
- require 'redis-objects'
5
- require 'logger'
6
- require 'spec_helper'
3
+ if defined?(Redis::Objects)
4
+ describe 'redis' do
7
5
 
8
6
  before(:all) do
9
7
  Redis.current = Redis.new(host: '127.0.0.1', port: 6379)
@@ -71,7 +69,5 @@ describe 'redis' do
71
69
  end
72
70
  end
73
71
 
74
- rescue LoadError
75
- puts "Not running Redis specs because sequel gem is not installed!!!"
76
72
  end
77
73
  end
@@ -1,8 +1,7 @@
1
- describe 'sequel' do
2
- begin
3
- require 'sequel'
4
- require 'logger'
5
- require 'spec_helper'
1
+ require 'spec_helper'
2
+
3
+ if defined?(Sequel)
4
+ describe 'sequel' do
6
5
 
7
6
  Dir[File.dirname(__FILE__) + "/../../models/sequel/*.rb"].sort.each do |f|
8
7
  require File.expand_path(f)
@@ -145,9 +144,5 @@ describe 'sequel' do
145
144
  end
146
145
  end
147
146
 
148
- rescue LoadError
149
- puts "------------------------------------------------------------------------"
150
- puts "Not running Sequel multiple-specs because sequel gem is not installed!!!"
151
- puts "------------------------------------------------------------------------"
152
147
  end
153
148
  end
@@ -1,8 +1,7 @@
1
- describe 'sequel' do
2
- begin
3
- require 'sequel'
4
- require 'logger'
5
- require 'spec_helper'
1
+ require 'spec_helper'
2
+
3
+ if defined?(Sequel)
4
+ describe 'sequel' do
6
5
 
7
6
  Dir[File.dirname(__FILE__) + "/../../models/sequel/*.rb"].sort.each do |f|
8
7
  require File.expand_path(f)
@@ -92,9 +91,5 @@ describe 'sequel' do
92
91
  end
93
92
  end
94
93
 
95
- rescue LoadError
96
- puts "------------------------------------------------------------------------"
97
- puts "Not running Sequel specs because sequel gem is not installed!!!"
98
- puts "------------------------------------------------------------------------"
99
94
  end
100
95
  end
@@ -60,4 +60,32 @@ describe 'state machine' do
60
60
  expect(SimpleMultipleExample::STATE_PROCESSING).to eq(:processing)
61
61
  expect(SimpleMultipleExample::STATE_RUNNING).to eq(:running)
62
62
  end
63
+
64
+ context 'triggers binding_events in bindind_state_machine' do
65
+ it 'does persist' do
66
+ expect(simple).to be_sleeping
67
+ expect(simple).to be_answered
68
+ expect(simple).to receive(:start!).and_call_original
69
+ simple.ask!
70
+ expect(simple).to be_asked
71
+ expect(simple).to be_processing
72
+ expect(simple).to receive(:stop!).and_call_original
73
+ simple.answer!
74
+ expect(simple).to be_sleeping
75
+ expect(simple).to be_answered
76
+ end
77
+
78
+ it 'does not persist' do
79
+ expect(simple).to be_sleeping
80
+ expect(simple).to be_answered
81
+ expect(simple).to receive(:start).and_call_original
82
+ simple.ask
83
+ expect(simple).to be_asked
84
+ expect(simple).to be_processing
85
+ expect(simple).to receive(:stop).and_call_original
86
+ simple.answer
87
+ expect(simple).to be_sleeping
88
+ expect(simple).to be_answered
89
+ end
90
+ end
63
91
  end
@@ -19,7 +19,7 @@ describe 'subclassing with multiple state machines' do
19
19
  expect(SuperClassMultiple.aasm(:right).states).not_to include(:archived)
20
20
  end
21
21
 
22
- it "should have the same events as its parent" do
22
+ it 'should have the same events as its parent' do
23
23
  expect(SubClassMultiple.aasm(:left).events).to eq(SuperClassMultiple.aasm(:left).events)
24
24
  expect(SubClassMultiple.aasm(:right).events).to eq(SuperClassMultiple.aasm(:right).events)
25
25
  end
@@ -35,5 +35,40 @@ describe 'subclassing with multiple state machines' do
35
35
  expect(son.aasm(:left).current_state).to eq(:ended)
36
36
  end
37
37
 
38
- end
38
+ it 'should allow the child to modify its left state machine' do
39
+ son = SubClassMultiple.new
40
+ expect(son.left_called_after).to eq(nil)
41
+ expect(son.right_called_after).to eq(nil)
42
+ son.foo
43
+ expect(son.left_called_after).to eq(true)
44
+ expect(son.right_called_after).to eq(nil)
45
+ global_callbacks = SubClassMultiple.aasm(:left).state_machine.global_callbacks
46
+ expect(global_callbacks).to_not be_empty
47
+ expect(global_callbacks[:after_all_transitions]).to eq :left_after_all_event
48
+ end
49
+
50
+ it 'should allow the child to modify its right state machine' do
51
+ son = SubClassMultiple.new
52
+ expect(son.right_called_after).to eq(nil)
53
+ expect(son.left_called_after).to eq(nil)
54
+ son.close
55
+ expect(son.right_called_after).to eq(true)
56
+ expect(son.left_called_after).to eq(nil)
57
+ global_callbacks = SubClassMultiple.aasm(:right).state_machine.global_callbacks
58
+ expect(global_callbacks).to_not be_empty
59
+ expect(global_callbacks[:after_all_transitions]).to eq :right_after_all_event
60
+ end
39
61
 
62
+ it 'should not modify the parent left state machine' do
63
+ super_class_event = SuperClassMultiple.aasm(:left).events.select { |event| event.name == :foo }.first
64
+ expect(super_class_event.options).to be_empty
65
+ expect(SuperClassMultiple.aasm(:left).state_machine.global_callbacks).to be_empty
66
+ end
67
+
68
+ it 'should not modify the parent right state machine' do
69
+ super_class_event = SuperClassMultiple.aasm(:right).events.select { |event| event.name == :close }.first
70
+ expect(super_class_event.options).to be_empty
71
+ expect(SuperClassMultiple.aasm(:right).state_machine.global_callbacks).to be_empty
72
+ end
73
+
74
+ end
@@ -13,7 +13,7 @@ describe 'subclassing' do
13
13
  expect(SuperClass.aasm.states).not_to include(:foo)
14
14
  end
15
15
 
16
- it "should have the same events as its parent" do
16
+ it 'should have the same events as its parent' do
17
17
  expect(SubClass.aasm.events).to eq(SuperClass.aasm.events)
18
18
  end
19
19
 
@@ -27,5 +27,20 @@ describe 'subclassing' do
27
27
  expect(son.aasm.current_state).to eq(:ended)
28
28
  end
29
29
 
30
- end
30
+ it 'should allow the child to modify its state machine' do
31
+ son = SubClass.new
32
+ expect(son.called_after).to eq(nil)
33
+ son.foo
34
+ expect(son.called_after).to eq(true)
35
+ global_callbacks = SubClass.aasm.state_machine.global_callbacks
36
+ expect(global_callbacks).to_not be_empty
37
+ expect(global_callbacks[:after_all_transitions]).to eq :after_all_event
38
+ end
31
39
 
40
+ it 'should not modify the parent state machine' do
41
+ super_class_event = SuperClass.aasm.events.select { |event| event.name == :foo }.first
42
+ expect(super_class_event.options).to be_empty
43
+ expect(SuperClass.aasm.state_machine.global_callbacks).to be_empty
44
+ end
45
+
46
+ end
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: 4.11.1
4
+ version: 4.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thorsten Boettger
@@ -9,8 +9,22 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-09-21 00:00:00.000000000 Z
12
+ date: 2017-03-21 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: concurrent-ruby
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '1.0'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '1.0'
14
28
  - !ruby/object:Gem::Dependency
15
29
  name: rake
16
30
  requirement: !ruby/object:Gem::Requirement
@@ -67,6 +81,20 @@ dependencies:
67
81
  - - ">="
68
82
  - !ruby/object:Gem::Version
69
83
  version: '0'
84
+ - !ruby/object:Gem::Dependency
85
+ name: appraisal
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
70
98
  - !ruby/object:Gem::Dependency
71
99
  name: pry
72
100
  requirement: !ruby/object:Gem::Requirement
@@ -92,8 +120,10 @@ files:
92
120
  - ".gitignore"
93
121
  - ".travis.yml"
94
122
  - API
123
+ - Appraisals
95
124
  - CHANGELOG.md
96
125
  - CODE_OF_CONDUCT.md
126
+ - CONTRIBUTING.md
97
127
  - Gemfile
98
128
  - HOWTO
99
129
  - LICENSE
@@ -101,13 +131,12 @@ files:
101
131
  - README.md
102
132
  - README_FROM_VERSION_3_TO_4.md
103
133
  - Rakefile
134
+ - TESTING.md
104
135
  - aasm.gemspec
105
136
  - callbacks.txt
106
- - gemfiles/rails_3.2_stable.gemfile
137
+ - gemfiles/rails_3.2.gemfile
107
138
  - gemfiles/rails_4.0.gemfile
108
- - gemfiles/rails_4.0_mongo_mapper.gemfile
109
139
  - gemfiles/rails_4.2.gemfile
110
- - gemfiles/rails_4.2_mongo_mapper.gemfile
111
140
  - gemfiles/rails_4.2_mongoid_5.gemfile
112
141
  - gemfiles/rails_5.0.gemfile
113
142
  - lib/aasm.rb
@@ -126,7 +155,6 @@ files:
126
155
  - lib/aasm/persistence/base.rb
127
156
  - lib/aasm/persistence/core_data_query_persistence.rb
128
157
  - lib/aasm/persistence/dynamoid_persistence.rb
129
- - lib/aasm/persistence/mongo_mapper_persistence.rb
130
158
  - lib/aasm/persistence/mongoid_persistence.rb
131
159
  - lib/aasm/persistence/plain_persistence.rb
132
160
  - lib/aasm/persistence/redis_persistence.rb
@@ -157,6 +185,7 @@ files:
157
185
  - spec/models/active_record/derivate_new_dsl.rb
158
186
  - spec/models/active_record/false_state.rb
159
187
  - spec/models/active_record/gate.rb
188
+ - spec/models/active_record/invalid_persistor.rb
160
189
  - spec/models/active_record/localizer_test_model.rb
161
190
  - spec/models/active_record/no_direct_assignment.rb
162
191
  - spec/models/active_record/no_scope.rb
@@ -164,13 +193,17 @@ files:
164
193
  - spec/models/active_record/provided_and_persisted_state.rb
165
194
  - spec/models/active_record/reader.rb
166
195
  - spec/models/active_record/readme_job.rb
196
+ - spec/models/active_record/silent_persistor.rb
167
197
  - spec/models/active_record/simple_new_dsl.rb
168
198
  - spec/models/active_record/thief.rb
199
+ - spec/models/active_record/transactor.rb
169
200
  - spec/models/active_record/transient.rb
201
+ - spec/models/active_record/validator.rb
170
202
  - spec/models/active_record/with_enum.rb
171
203
  - spec/models/active_record/with_enum_without_column.rb
172
204
  - spec/models/active_record/with_false_enum.rb
173
205
  - spec/models/active_record/with_true_enum.rb
206
+ - spec/models/active_record/worker.rb
174
207
  - spec/models/active_record/writer.rb
175
208
  - spec/models/basic_two_state_machines_example.rb
176
209
  - spec/models/callbacks/basic.rb
@@ -199,17 +232,16 @@ files:
199
232
  - spec/models/guardian.rb
200
233
  - spec/models/guardian_multiple.rb
201
234
  - spec/models/initial_state_proc.rb
202
- - spec/models/invalid_persistor.rb
203
- - spec/models/mongo_mapper/complex_mongo_mapper_example.rb
204
- - spec/models/mongo_mapper/no_scope_mongo_mapper.rb
205
- - spec/models/mongo_mapper/simple_mongo_mapper.rb
206
- - spec/models/mongo_mapper/simple_new_dsl_mongo_mapper.rb
207
235
  - spec/models/mongoid/complex_mongoid_example.rb
236
+ - spec/models/mongoid/invalid_persistor_mongoid.rb
208
237
  - spec/models/mongoid/mongoid_relationships.rb
209
238
  - spec/models/mongoid/no_scope_mongoid.rb
239
+ - spec/models/mongoid/silent_persistor_mongoid.rb
210
240
  - spec/models/mongoid/simple_mongoid.rb
211
241
  - spec/models/mongoid/simple_new_dsl_mongoid.rb
242
+ - spec/models/mongoid/validator_mongoid.rb
212
243
  - spec/models/multi_transitioner.rb
244
+ - spec/models/multiple_transitions_that_differ_only_by_guard.rb
213
245
  - spec/models/namespaced_multiple_example.rb
214
246
  - spec/models/no_initial_state.rb
215
247
  - spec/models/not_auto_loaded/process.rb
@@ -221,7 +253,6 @@ files:
221
253
  - spec/models/sequel/sequel_multiple.rb
222
254
  - spec/models/sequel/sequel_simple.rb
223
255
  - spec/models/silencer.rb
224
- - spec/models/silent_persistor.rb
225
256
  - spec/models/simple_custom_example.rb
226
257
  - spec/models/simple_example.rb
227
258
  - spec/models/simple_multiple_example.rb
@@ -232,11 +263,14 @@ files:
232
263
  - spec/models/sub_classing.rb
233
264
  - spec/models/super_class.rb
234
265
  - spec/models/this_name_better_not_be_in_use.rb
235
- - spec/models/transactor.rb
236
266
  - spec/models/valid_state_name.rb
237
- - spec/models/validator.rb
238
- - spec/models/worker.rb
239
267
  - spec/spec_helper.rb
268
+ - spec/spec_helpers/active_record.rb
269
+ - spec/spec_helpers/dynamoid.rb
270
+ - spec/spec_helpers/mongoid.rb
271
+ - spec/spec_helpers/redis.rb
272
+ - spec/spec_helpers/remove_warnings.rb
273
+ - spec/spec_helpers/sequel.rb
240
274
  - spec/unit/api_spec.rb
241
275
  - spec/unit/basic_two_state_machines_example_spec.rb
242
276
  - spec/unit/callback_multiple_spec.rb
@@ -258,6 +292,7 @@ files:
258
292
  - spec/unit/inspection_spec.rb
259
293
  - spec/unit/localizer_spec.rb
260
294
  - spec/unit/memory_leak_spec.rb
295
+ - spec/unit/multiple_transitions_that_differ_only_by_guard_spec.rb
261
296
  - spec/unit/namespaced_multiple_example_spec.rb
262
297
  - spec/unit/new_dsl_spec.rb
263
298
  - spec/unit/override_warning_spec.rb
@@ -265,8 +300,6 @@ files:
265
300
  - spec/unit/persistence/active_record_persistence_spec.rb
266
301
  - spec/unit/persistence/dynamoid_persistence_multiple_spec.rb
267
302
  - spec/unit/persistence/dynamoid_persistence_spec.rb
268
- - spec/unit/persistence/mongo_mapper_persistence_multiple_spec.rb
269
- - spec/unit/persistence/mongo_mapper_persistence_spec.rb
270
303
  - spec/unit/persistence/mongoid_persistence_multiple_spec.rb
271
304
  - spec/unit/persistence/mongoid_persistence_spec.rb
272
305
  - spec/unit/persistence/redis_persistence_spec.rb
@@ -319,6 +352,7 @@ test_files:
319
352
  - spec/models/active_record/derivate_new_dsl.rb
320
353
  - spec/models/active_record/false_state.rb
321
354
  - spec/models/active_record/gate.rb
355
+ - spec/models/active_record/invalid_persistor.rb
322
356
  - spec/models/active_record/localizer_test_model.rb
323
357
  - spec/models/active_record/no_direct_assignment.rb
324
358
  - spec/models/active_record/no_scope.rb
@@ -326,13 +360,17 @@ test_files:
326
360
  - spec/models/active_record/provided_and_persisted_state.rb
327
361
  - spec/models/active_record/reader.rb
328
362
  - spec/models/active_record/readme_job.rb
363
+ - spec/models/active_record/silent_persistor.rb
329
364
  - spec/models/active_record/simple_new_dsl.rb
330
365
  - spec/models/active_record/thief.rb
366
+ - spec/models/active_record/transactor.rb
331
367
  - spec/models/active_record/transient.rb
368
+ - spec/models/active_record/validator.rb
332
369
  - spec/models/active_record/with_enum.rb
333
370
  - spec/models/active_record/with_enum_without_column.rb
334
371
  - spec/models/active_record/with_false_enum.rb
335
372
  - spec/models/active_record/with_true_enum.rb
373
+ - spec/models/active_record/worker.rb
336
374
  - spec/models/active_record/writer.rb
337
375
  - spec/models/basic_two_state_machines_example.rb
338
376
  - spec/models/callbacks/basic.rb
@@ -361,17 +399,16 @@ test_files:
361
399
  - spec/models/guardian.rb
362
400
  - spec/models/guardian_multiple.rb
363
401
  - spec/models/initial_state_proc.rb
364
- - spec/models/invalid_persistor.rb
365
- - spec/models/mongo_mapper/complex_mongo_mapper_example.rb
366
- - spec/models/mongo_mapper/no_scope_mongo_mapper.rb
367
- - spec/models/mongo_mapper/simple_mongo_mapper.rb
368
- - spec/models/mongo_mapper/simple_new_dsl_mongo_mapper.rb
369
402
  - spec/models/mongoid/complex_mongoid_example.rb
403
+ - spec/models/mongoid/invalid_persistor_mongoid.rb
370
404
  - spec/models/mongoid/mongoid_relationships.rb
371
405
  - spec/models/mongoid/no_scope_mongoid.rb
406
+ - spec/models/mongoid/silent_persistor_mongoid.rb
372
407
  - spec/models/mongoid/simple_mongoid.rb
373
408
  - spec/models/mongoid/simple_new_dsl_mongoid.rb
409
+ - spec/models/mongoid/validator_mongoid.rb
374
410
  - spec/models/multi_transitioner.rb
411
+ - spec/models/multiple_transitions_that_differ_only_by_guard.rb
375
412
  - spec/models/namespaced_multiple_example.rb
376
413
  - spec/models/no_initial_state.rb
377
414
  - spec/models/not_auto_loaded/process.rb
@@ -383,7 +420,6 @@ test_files:
383
420
  - spec/models/sequel/sequel_multiple.rb
384
421
  - spec/models/sequel/sequel_simple.rb
385
422
  - spec/models/silencer.rb
386
- - spec/models/silent_persistor.rb
387
423
  - spec/models/simple_custom_example.rb
388
424
  - spec/models/simple_example.rb
389
425
  - spec/models/simple_multiple_example.rb
@@ -394,11 +430,14 @@ test_files:
394
430
  - spec/models/sub_classing.rb
395
431
  - spec/models/super_class.rb
396
432
  - spec/models/this_name_better_not_be_in_use.rb
397
- - spec/models/transactor.rb
398
433
  - spec/models/valid_state_name.rb
399
- - spec/models/validator.rb
400
- - spec/models/worker.rb
401
434
  - spec/spec_helper.rb
435
+ - spec/spec_helpers/active_record.rb
436
+ - spec/spec_helpers/dynamoid.rb
437
+ - spec/spec_helpers/mongoid.rb
438
+ - spec/spec_helpers/redis.rb
439
+ - spec/spec_helpers/remove_warnings.rb
440
+ - spec/spec_helpers/sequel.rb
402
441
  - spec/unit/api_spec.rb
403
442
  - spec/unit/basic_two_state_machines_example_spec.rb
404
443
  - spec/unit/callback_multiple_spec.rb
@@ -420,6 +459,7 @@ test_files:
420
459
  - spec/unit/inspection_spec.rb
421
460
  - spec/unit/localizer_spec.rb
422
461
  - spec/unit/memory_leak_spec.rb
462
+ - spec/unit/multiple_transitions_that_differ_only_by_guard_spec.rb
423
463
  - spec/unit/namespaced_multiple_example_spec.rb
424
464
  - spec/unit/new_dsl_spec.rb
425
465
  - spec/unit/override_warning_spec.rb
@@ -427,8 +467,6 @@ test_files:
427
467
  - spec/unit/persistence/active_record_persistence_spec.rb
428
468
  - spec/unit/persistence/dynamoid_persistence_multiple_spec.rb
429
469
  - spec/unit/persistence/dynamoid_persistence_spec.rb
430
- - spec/unit/persistence/mongo_mapper_persistence_multiple_spec.rb
431
- - spec/unit/persistence/mongo_mapper_persistence_spec.rb
432
470
  - spec/unit/persistence/mongoid_persistence_multiple_spec.rb
433
471
  - spec/unit/persistence/mongoid_persistence_spec.rb
434
472
  - spec/unit/persistence/redis_persistence_spec.rb