aasm 4.11.1 → 4.12.0

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 (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