aasm 4.11.1 → 5.2.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 (194) hide show
  1. checksums.yaml +5 -5
  2. data/.github/ISSUE_TEMPLATE/bug_report.md +27 -0
  3. data/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  4. data/.travis.yml +56 -23
  5. data/Appraisals +67 -0
  6. data/CHANGELOG.md +112 -0
  7. data/CONTRIBUTING.md +24 -0
  8. data/Dockerfile +44 -0
  9. data/Gemfile +3 -21
  10. data/Gemfile.lock_old +151 -0
  11. data/LICENSE +1 -1
  12. data/README.md +540 -139
  13. data/Rakefile +6 -1
  14. data/TESTING.md +25 -0
  15. data/aasm.gemspec +5 -0
  16. data/docker-compose.yml +40 -0
  17. data/gemfiles/norails.gemfile +10 -0
  18. data/gemfiles/rails_4.2.gemfile +13 -11
  19. data/gemfiles/rails_4.2_mongoid_5.gemfile +8 -11
  20. data/gemfiles/rails_4.2_nobrainer.gemfile +9 -0
  21. data/gemfiles/rails_5.0.gemfile +11 -18
  22. data/gemfiles/rails_5.0_nobrainer.gemfile +9 -0
  23. data/gemfiles/rails_5.1.gemfile +14 -0
  24. data/gemfiles/rails_5.2.gemfile +14 -0
  25. data/lib/aasm/aasm.rb +40 -29
  26. data/lib/aasm/base.rb +61 -11
  27. data/lib/aasm/configuration.rb +10 -0
  28. data/lib/aasm/core/event.rb +45 -37
  29. data/lib/aasm/core/invoker.rb +129 -0
  30. data/lib/aasm/core/invokers/base_invoker.rb +75 -0
  31. data/lib/aasm/core/invokers/class_invoker.rb +52 -0
  32. data/lib/aasm/core/invokers/literal_invoker.rb +47 -0
  33. data/lib/aasm/core/invokers/proc_invoker.rb +59 -0
  34. data/lib/aasm/core/state.rb +22 -13
  35. data/lib/aasm/core/transition.rb +17 -69
  36. data/lib/aasm/dsl_helper.rb +24 -22
  37. data/lib/aasm/errors.rb +4 -6
  38. data/lib/aasm/instance_base.rb +22 -4
  39. data/lib/aasm/localizer.rb +13 -3
  40. data/lib/aasm/minitest/allow_event.rb +13 -0
  41. data/lib/aasm/minitest/allow_transition_to.rb +13 -0
  42. data/lib/aasm/minitest/have_state.rb +13 -0
  43. data/lib/aasm/minitest/transition_from.rb +21 -0
  44. data/lib/aasm/minitest.rb +5 -0
  45. data/lib/aasm/minitest_spec.rb +15 -0
  46. data/lib/aasm/persistence/active_record_persistence.rb +49 -105
  47. data/lib/aasm/persistence/base.rb +20 -5
  48. data/lib/aasm/persistence/core_data_query_persistence.rb +2 -1
  49. data/lib/aasm/persistence/dynamoid_persistence.rb +1 -1
  50. data/lib/aasm/persistence/mongoid_persistence.rb +26 -32
  51. data/lib/aasm/persistence/no_brainer_persistence.rb +105 -0
  52. data/lib/aasm/persistence/orm.rb +154 -0
  53. data/lib/aasm/persistence/plain_persistence.rb +2 -1
  54. data/lib/aasm/persistence/redis_persistence.rb +16 -11
  55. data/lib/aasm/persistence/sequel_persistence.rb +36 -64
  56. data/lib/aasm/persistence.rb +3 -3
  57. data/lib/aasm/rspec/allow_event.rb +5 -1
  58. data/lib/aasm/rspec/allow_transition_to.rb +5 -1
  59. data/lib/aasm/rspec/transition_from.rb +5 -1
  60. data/lib/aasm/state_machine.rb +4 -2
  61. data/lib/aasm/state_machine_store.rb +5 -2
  62. data/lib/aasm/version.rb +1 -1
  63. data/lib/aasm.rb +5 -2
  64. data/lib/generators/aasm/orm_helpers.rb +6 -0
  65. data/lib/generators/active_record/aasm_generator.rb +3 -1
  66. data/lib/generators/active_record/templates/migration.rb +1 -1
  67. data/lib/generators/active_record/templates/migration_existing.rb +1 -1
  68. data/lib/generators/nobrainer/aasm_generator.rb +28 -0
  69. data/lib/motion-aasm.rb +3 -1
  70. data/spec/database.rb +20 -7
  71. data/spec/en.yml +0 -3
  72. data/spec/generators/active_record_generator_spec.rb +49 -40
  73. data/spec/generators/mongoid_generator_spec.rb +4 -6
  74. data/spec/generators/no_brainer_generator_spec.rb +29 -0
  75. data/spec/{en_deprecated_style.yml → localizer_test_model_deprecated_style.yml} +6 -3
  76. data/spec/localizer_test_model_new_style.yml +11 -0
  77. data/spec/models/active_record/active_record_callback.rb +93 -0
  78. data/spec/models/active_record/complex_active_record_example.rb +5 -1
  79. data/spec/models/active_record/instance_level_skip_validation_example.rb +19 -0
  80. data/spec/models/{invalid_persistor.rb → active_record/invalid_persistor.rb} +0 -2
  81. data/spec/models/active_record/localizer_test_model.rb +11 -3
  82. data/spec/models/active_record/namespaced.rb +16 -0
  83. data/spec/models/active_record/person.rb +23 -0
  84. data/spec/models/{silent_persistor.rb → active_record/silent_persistor.rb} +0 -2
  85. data/spec/models/active_record/simple_new_dsl.rb +15 -0
  86. data/spec/models/active_record/timestamp_example.rb +16 -0
  87. data/spec/models/{transactor.rb → active_record/transactor.rb} +25 -2
  88. data/spec/models/{validator.rb → active_record/validator.rb} +0 -2
  89. data/spec/models/active_record/work.rb +3 -0
  90. data/spec/models/{worker.rb → active_record/worker.rb} +0 -0
  91. data/spec/models/callbacks/basic.rb +5 -2
  92. data/spec/models/callbacks/with_state_arg.rb +5 -1
  93. data/spec/models/callbacks/with_state_arg_multiple.rb +4 -1
  94. data/spec/models/default_state.rb +1 -1
  95. data/spec/models/guard_arguments_check.rb +17 -0
  96. data/spec/models/guard_with_params.rb +1 -1
  97. data/spec/models/guardian_without_from_specified.rb +18 -0
  98. data/spec/models/mongoid/invalid_persistor_mongoid.rb +39 -0
  99. data/spec/models/mongoid/silent_persistor_mongoid.rb +39 -0
  100. data/spec/models/mongoid/timestamp_example_mongoid.rb +20 -0
  101. data/spec/models/mongoid/validator_mongoid.rb +100 -0
  102. data/spec/models/multiple_transitions_that_differ_only_by_guard.rb +31 -0
  103. data/spec/models/namespaced_multiple_example.rb +14 -0
  104. data/spec/models/nobrainer/complex_no_brainer_example.rb +36 -0
  105. data/spec/models/nobrainer/invalid_persistor_no_brainer.rb +39 -0
  106. data/spec/models/nobrainer/no_scope_no_brainer.rb +21 -0
  107. data/spec/models/nobrainer/nobrainer_relationships.rb +25 -0
  108. data/spec/models/nobrainer/silent_persistor_no_brainer.rb +39 -0
  109. data/spec/models/nobrainer/simple_new_dsl_nobrainer.rb +25 -0
  110. data/spec/models/{mongo_mapper/simple_mongo_mapper.rb → nobrainer/simple_no_brainer.rb} +8 -8
  111. data/spec/models/nobrainer/validator_no_brainer.rb +98 -0
  112. data/spec/models/parametrised_event.rb +7 -0
  113. data/spec/models/{mongo_mapper/complex_mongo_mapper_example.rb → redis/complex_redis_example.rb} +8 -5
  114. data/spec/models/redis/redis_multiple.rb +20 -0
  115. data/spec/models/redis/redis_simple.rb +20 -0
  116. data/spec/models/sequel/complex_sequel_example.rb +4 -3
  117. data/spec/models/sequel/invalid_persistor.rb +52 -0
  118. data/spec/models/sequel/sequel_multiple.rb +13 -13
  119. data/spec/models/sequel/sequel_simple.rb +13 -12
  120. data/spec/models/sequel/silent_persistor.rb +50 -0
  121. data/spec/models/sequel/transactor.rb +112 -0
  122. data/spec/models/sequel/validator.rb +93 -0
  123. data/spec/models/sequel/worker.rb +12 -0
  124. data/spec/models/simple_example.rb +8 -0
  125. data/spec/models/simple_example_with_guard_args.rb +17 -0
  126. data/spec/models/simple_multiple_example.rb +12 -0
  127. data/spec/models/sub_class.rb +34 -0
  128. data/spec/models/timestamps_example.rb +19 -0
  129. data/spec/models/timestamps_with_named_machine_example.rb +13 -0
  130. data/spec/spec_helper.rb +15 -33
  131. data/spec/spec_helpers/active_record.rb +8 -0
  132. data/spec/spec_helpers/dynamoid.rb +35 -0
  133. data/spec/spec_helpers/mongoid.rb +26 -0
  134. data/spec/spec_helpers/nobrainer.rb +15 -0
  135. data/spec/spec_helpers/redis.rb +18 -0
  136. data/spec/spec_helpers/remove_warnings.rb +1 -0
  137. data/spec/spec_helpers/sequel.rb +7 -0
  138. data/spec/unit/abstract_class_spec.rb +27 -0
  139. data/spec/unit/api_spec.rb +79 -72
  140. data/spec/unit/callback_multiple_spec.rb +7 -3
  141. data/spec/unit/callbacks_spec.rb +37 -2
  142. data/spec/unit/complex_example_spec.rb +12 -3
  143. data/spec/unit/complex_multiple_example_spec.rb +20 -4
  144. data/spec/unit/event_multiple_spec.rb +1 -1
  145. data/spec/unit/event_spec.rb +29 -4
  146. data/spec/unit/exception_spec.rb +1 -1
  147. data/spec/unit/guard_arguments_check_spec.rb +9 -0
  148. data/spec/unit/guard_spec.rb +17 -0
  149. data/spec/unit/guard_with_params_spec.rb +4 -0
  150. data/spec/unit/guard_without_from_specified_spec.rb +10 -0
  151. data/spec/unit/inspection_multiple_spec.rb +9 -5
  152. data/spec/unit/inspection_spec.rb +7 -3
  153. data/spec/unit/invoker_spec.rb +189 -0
  154. data/spec/unit/invokers/base_invoker_spec.rb +72 -0
  155. data/spec/unit/invokers/class_invoker_spec.rb +95 -0
  156. data/spec/unit/invokers/literal_invoker_spec.rb +86 -0
  157. data/spec/unit/invokers/proc_invoker_spec.rb +86 -0
  158. data/spec/unit/localizer_spec.rb +85 -52
  159. data/spec/unit/multiple_transitions_that_differ_only_by_guard_spec.rb +14 -0
  160. data/spec/unit/namespaced_multiple_example_spec.rb +22 -0
  161. data/spec/unit/override_warning_spec.rb +8 -0
  162. data/spec/unit/persistence/active_record_persistence_multiple_spec.rb +468 -447
  163. data/spec/unit/persistence/active_record_persistence_spec.rb +639 -486
  164. data/spec/unit/persistence/dynamoid_persistence_multiple_spec.rb +4 -9
  165. data/spec/unit/persistence/dynamoid_persistence_spec.rb +4 -9
  166. data/spec/unit/persistence/mongoid_persistence_multiple_spec.rb +83 -13
  167. data/spec/unit/persistence/mongoid_persistence_spec.rb +97 -13
  168. data/spec/unit/persistence/no_brainer_persistence_multiple_spec.rb +198 -0
  169. data/spec/unit/persistence/no_brainer_persistence_spec.rb +158 -0
  170. data/spec/unit/persistence/redis_persistence_multiple_spec.rb +88 -0
  171. data/spec/unit/persistence/redis_persistence_spec.rb +8 -32
  172. data/spec/unit/persistence/sequel_persistence_multiple_spec.rb +6 -11
  173. data/spec/unit/persistence/sequel_persistence_spec.rb +278 -10
  174. data/spec/unit/rspec_matcher_spec.rb +9 -0
  175. data/spec/unit/simple_example_spec.rb +15 -0
  176. data/spec/unit/simple_multiple_example_spec.rb +28 -0
  177. data/spec/unit/state_spec.rb +23 -7
  178. data/spec/unit/subclassing_multiple_spec.rb +37 -2
  179. data/spec/unit/subclassing_spec.rb +17 -2
  180. data/spec/unit/timestamps_spec.rb +32 -0
  181. data/spec/unit/transition_spec.rb +1 -1
  182. data/test/minitest_helper.rb +57 -0
  183. data/test/unit/minitest_matcher_test.rb +80 -0
  184. metadata +213 -37
  185. data/callbacks.txt +0 -51
  186. data/gemfiles/rails_3.2_stable.gemfile +0 -15
  187. data/gemfiles/rails_4.0.gemfile +0 -16
  188. data/gemfiles/rails_4.0_mongo_mapper.gemfile +0 -16
  189. data/gemfiles/rails_4.2_mongo_mapper.gemfile +0 -17
  190. data/lib/aasm/persistence/mongo_mapper_persistence.rb +0 -163
  191. data/spec/models/mongo_mapper/no_scope_mongo_mapper.rb +0 -21
  192. data/spec/models/mongo_mapper/simple_new_dsl_mongo_mapper.rb +0 -25
  193. data/spec/unit/persistence/mongo_mapper_persistence_multiple_spec.rb +0 -149
  194. data/spec/unit/persistence/mongo_mapper_persistence_spec.rb +0 -96
metadata CHANGED
@@ -1,16 +1,30 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aasm
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.11.1
4
+ version: 5.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thorsten Boettger
8
8
  - Anil Maurya
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-09-21 00:00:00.000000000 Z
12
+ date: 2021-05-02 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,48 @@ 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'
98
+ - !ruby/object:Gem::Dependency
99
+ name: simplecov
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ - !ruby/object:Gem::Dependency
113
+ name: codecov
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: 0.1.21
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: 0.1.21
70
126
  - !ruby/object:Gem::Dependency
71
127
  name: pry
72
128
  requirement: !ruby/object:Gem::Requirement
@@ -89,45 +145,65 @@ extensions: []
89
145
  extra_rdoc_files: []
90
146
  files:
91
147
  - ".document"
148
+ - ".github/ISSUE_TEMPLATE/bug_report.md"
149
+ - ".github/ISSUE_TEMPLATE/feature_request.md"
92
150
  - ".gitignore"
93
151
  - ".travis.yml"
94
152
  - API
153
+ - Appraisals
95
154
  - CHANGELOG.md
96
155
  - CODE_OF_CONDUCT.md
156
+ - CONTRIBUTING.md
157
+ - Dockerfile
97
158
  - Gemfile
159
+ - Gemfile.lock_old
98
160
  - HOWTO
99
161
  - LICENSE
100
162
  - PLANNED_CHANGES.md
101
163
  - README.md
102
164
  - README_FROM_VERSION_3_TO_4.md
103
165
  - Rakefile
166
+ - TESTING.md
104
167
  - aasm.gemspec
105
- - callbacks.txt
106
- - gemfiles/rails_3.2_stable.gemfile
107
- - gemfiles/rails_4.0.gemfile
108
- - gemfiles/rails_4.0_mongo_mapper.gemfile
168
+ - docker-compose.yml
169
+ - gemfiles/norails.gemfile
109
170
  - gemfiles/rails_4.2.gemfile
110
- - gemfiles/rails_4.2_mongo_mapper.gemfile
111
171
  - gemfiles/rails_4.2_mongoid_5.gemfile
172
+ - gemfiles/rails_4.2_nobrainer.gemfile
112
173
  - gemfiles/rails_5.0.gemfile
174
+ - gemfiles/rails_5.0_nobrainer.gemfile
175
+ - gemfiles/rails_5.1.gemfile
176
+ - gemfiles/rails_5.2.gemfile
113
177
  - lib/aasm.rb
114
178
  - lib/aasm/aasm.rb
115
179
  - lib/aasm/base.rb
116
180
  - lib/aasm/configuration.rb
117
181
  - lib/aasm/core/event.rb
182
+ - lib/aasm/core/invoker.rb
183
+ - lib/aasm/core/invokers/base_invoker.rb
184
+ - lib/aasm/core/invokers/class_invoker.rb
185
+ - lib/aasm/core/invokers/literal_invoker.rb
186
+ - lib/aasm/core/invokers/proc_invoker.rb
118
187
  - lib/aasm/core/state.rb
119
188
  - lib/aasm/core/transition.rb
120
189
  - lib/aasm/dsl_helper.rb
121
190
  - lib/aasm/errors.rb
122
191
  - lib/aasm/instance_base.rb
123
192
  - lib/aasm/localizer.rb
193
+ - lib/aasm/minitest.rb
194
+ - lib/aasm/minitest/allow_event.rb
195
+ - lib/aasm/minitest/allow_transition_to.rb
196
+ - lib/aasm/minitest/have_state.rb
197
+ - lib/aasm/minitest/transition_from.rb
198
+ - lib/aasm/minitest_spec.rb
124
199
  - lib/aasm/persistence.rb
125
200
  - lib/aasm/persistence/active_record_persistence.rb
126
201
  - lib/aasm/persistence/base.rb
127
202
  - lib/aasm/persistence/core_data_query_persistence.rb
128
203
  - lib/aasm/persistence/dynamoid_persistence.rb
129
- - lib/aasm/persistence/mongo_mapper_persistence.rb
130
204
  - lib/aasm/persistence/mongoid_persistence.rb
205
+ - lib/aasm/persistence/no_brainer_persistence.rb
206
+ - lib/aasm/persistence/orm.rb
131
207
  - lib/aasm/persistence/plain_persistence.rb
132
208
  - lib/aasm/persistence/redis_persistence.rb
133
209
  - lib/aasm/persistence/sequel_persistence.rb
@@ -145,32 +221,46 @@ files:
145
221
  - lib/generators/active_record/templates/migration.rb
146
222
  - lib/generators/active_record/templates/migration_existing.rb
147
223
  - lib/generators/mongoid/aasm_generator.rb
224
+ - lib/generators/nobrainer/aasm_generator.rb
148
225
  - lib/motion-aasm.rb
149
226
  - spec/database.rb
150
227
  - spec/database.yml
151
228
  - spec/en.yml
152
- - spec/en_deprecated_style.yml
153
229
  - spec/generators/active_record_generator_spec.rb
154
230
  - spec/generators/mongoid_generator_spec.rb
231
+ - spec/generators/no_brainer_generator_spec.rb
232
+ - spec/localizer_test_model_deprecated_style.yml
233
+ - spec/localizer_test_model_new_style.yml
234
+ - spec/models/active_record/active_record_callback.rb
155
235
  - spec/models/active_record/basic_active_record_two_state_machines_example.rb
156
236
  - spec/models/active_record/complex_active_record_example.rb
157
237
  - spec/models/active_record/derivate_new_dsl.rb
158
238
  - spec/models/active_record/false_state.rb
159
239
  - spec/models/active_record/gate.rb
240
+ - spec/models/active_record/instance_level_skip_validation_example.rb
241
+ - spec/models/active_record/invalid_persistor.rb
160
242
  - spec/models/active_record/localizer_test_model.rb
243
+ - spec/models/active_record/namespaced.rb
161
244
  - spec/models/active_record/no_direct_assignment.rb
162
245
  - spec/models/active_record/no_scope.rb
163
246
  - spec/models/active_record/persisted_state.rb
247
+ - spec/models/active_record/person.rb
164
248
  - spec/models/active_record/provided_and_persisted_state.rb
165
249
  - spec/models/active_record/reader.rb
166
250
  - spec/models/active_record/readme_job.rb
251
+ - spec/models/active_record/silent_persistor.rb
167
252
  - spec/models/active_record/simple_new_dsl.rb
168
253
  - spec/models/active_record/thief.rb
254
+ - spec/models/active_record/timestamp_example.rb
255
+ - spec/models/active_record/transactor.rb
169
256
  - spec/models/active_record/transient.rb
257
+ - spec/models/active_record/validator.rb
170
258
  - spec/models/active_record/with_enum.rb
171
259
  - spec/models/active_record/with_enum_without_column.rb
172
260
  - spec/models/active_record/with_false_enum.rb
173
261
  - spec/models/active_record/with_true_enum.rb
262
+ - spec/models/active_record/work.rb
263
+ - spec/models/active_record/worker.rb
174
264
  - spec/models/active_record/writer.rb
175
265
  - spec/models/basic_two_state_machines_example.rb
176
266
  - spec/models/callbacks/basic.rb
@@ -194,36 +284,54 @@ files:
194
284
  - spec/models/dynamoid/dynamoid_simple.rb
195
285
  - spec/models/foo.rb
196
286
  - spec/models/foo_callback_multiple.rb
287
+ - spec/models/guard_arguments_check.rb
197
288
  - spec/models/guard_with_params.rb
198
289
  - spec/models/guard_with_params_multiple.rb
199
290
  - spec/models/guardian.rb
200
291
  - spec/models/guardian_multiple.rb
292
+ - spec/models/guardian_without_from_specified.rb
201
293
  - 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
294
  - spec/models/mongoid/complex_mongoid_example.rb
295
+ - spec/models/mongoid/invalid_persistor_mongoid.rb
208
296
  - spec/models/mongoid/mongoid_relationships.rb
209
297
  - spec/models/mongoid/no_scope_mongoid.rb
298
+ - spec/models/mongoid/silent_persistor_mongoid.rb
210
299
  - spec/models/mongoid/simple_mongoid.rb
211
300
  - spec/models/mongoid/simple_new_dsl_mongoid.rb
301
+ - spec/models/mongoid/timestamp_example_mongoid.rb
302
+ - spec/models/mongoid/validator_mongoid.rb
212
303
  - spec/models/multi_transitioner.rb
304
+ - spec/models/multiple_transitions_that_differ_only_by_guard.rb
213
305
  - spec/models/namespaced_multiple_example.rb
214
306
  - spec/models/no_initial_state.rb
307
+ - spec/models/nobrainer/complex_no_brainer_example.rb
308
+ - spec/models/nobrainer/invalid_persistor_no_brainer.rb
309
+ - spec/models/nobrainer/no_scope_no_brainer.rb
310
+ - spec/models/nobrainer/nobrainer_relationships.rb
311
+ - spec/models/nobrainer/silent_persistor_no_brainer.rb
312
+ - spec/models/nobrainer/simple_new_dsl_nobrainer.rb
313
+ - spec/models/nobrainer/simple_no_brainer.rb
314
+ - spec/models/nobrainer/validator_no_brainer.rb
215
315
  - spec/models/not_auto_loaded/process.rb
216
316
  - spec/models/parametrised_event.rb
217
317
  - spec/models/parametrised_event_multiple.rb
218
318
  - spec/models/process_with_new_dsl.rb
219
319
  - spec/models/provided_state.rb
320
+ - spec/models/redis/complex_redis_example.rb
321
+ - spec/models/redis/redis_multiple.rb
322
+ - spec/models/redis/redis_simple.rb
220
323
  - spec/models/sequel/complex_sequel_example.rb
324
+ - spec/models/sequel/invalid_persistor.rb
221
325
  - spec/models/sequel/sequel_multiple.rb
222
326
  - spec/models/sequel/sequel_simple.rb
327
+ - spec/models/sequel/silent_persistor.rb
328
+ - spec/models/sequel/transactor.rb
329
+ - spec/models/sequel/validator.rb
330
+ - spec/models/sequel/worker.rb
223
331
  - spec/models/silencer.rb
224
- - spec/models/silent_persistor.rb
225
332
  - spec/models/simple_custom_example.rb
226
333
  - spec/models/simple_example.rb
334
+ - spec/models/simple_example_with_guard_args.rb
227
335
  - spec/models/simple_multiple_example.rb
228
336
  - spec/models/state_machine_with_failed_event.rb
229
337
  - spec/models/states_on_one_line_example.rb
@@ -232,11 +340,18 @@ files:
232
340
  - spec/models/sub_classing.rb
233
341
  - spec/models/super_class.rb
234
342
  - spec/models/this_name_better_not_be_in_use.rb
235
- - spec/models/transactor.rb
343
+ - spec/models/timestamps_example.rb
344
+ - spec/models/timestamps_with_named_machine_example.rb
236
345
  - spec/models/valid_state_name.rb
237
- - spec/models/validator.rb
238
- - spec/models/worker.rb
239
346
  - spec/spec_helper.rb
347
+ - spec/spec_helpers/active_record.rb
348
+ - spec/spec_helpers/dynamoid.rb
349
+ - spec/spec_helpers/mongoid.rb
350
+ - spec/spec_helpers/nobrainer.rb
351
+ - spec/spec_helpers/redis.rb
352
+ - spec/spec_helpers/remove_warnings.rb
353
+ - spec/spec_helpers/sequel.rb
354
+ - spec/unit/abstract_class_spec.rb
240
355
  - spec/unit/api_spec.rb
241
356
  - spec/unit/basic_two_state_machines_example_spec.rb
242
357
  - spec/unit/callback_multiple_spec.rb
@@ -248,16 +363,24 @@ files:
248
363
  - spec/unit/event_naming_spec.rb
249
364
  - spec/unit/event_spec.rb
250
365
  - spec/unit/exception_spec.rb
366
+ - spec/unit/guard_arguments_check_spec.rb
251
367
  - spec/unit/guard_multiple_spec.rb
252
368
  - spec/unit/guard_spec.rb
253
369
  - spec/unit/guard_with_params_multiple_spec.rb
254
370
  - spec/unit/guard_with_params_spec.rb
371
+ - spec/unit/guard_without_from_specified_spec.rb
255
372
  - spec/unit/initial_state_multiple_spec.rb
256
373
  - spec/unit/initial_state_spec.rb
257
374
  - spec/unit/inspection_multiple_spec.rb
258
375
  - spec/unit/inspection_spec.rb
376
+ - spec/unit/invoker_spec.rb
377
+ - spec/unit/invokers/base_invoker_spec.rb
378
+ - spec/unit/invokers/class_invoker_spec.rb
379
+ - spec/unit/invokers/literal_invoker_spec.rb
380
+ - spec/unit/invokers/proc_invoker_spec.rb
259
381
  - spec/unit/localizer_spec.rb
260
382
  - spec/unit/memory_leak_spec.rb
383
+ - spec/unit/multiple_transitions_that_differ_only_by_guard_spec.rb
261
384
  - spec/unit/namespaced_multiple_example_spec.rb
262
385
  - spec/unit/new_dsl_spec.rb
263
386
  - spec/unit/override_warning_spec.rb
@@ -265,10 +388,11 @@ files:
265
388
  - spec/unit/persistence/active_record_persistence_spec.rb
266
389
  - spec/unit/persistence/dynamoid_persistence_multiple_spec.rb
267
390
  - 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
391
  - spec/unit/persistence/mongoid_persistence_multiple_spec.rb
271
392
  - spec/unit/persistence/mongoid_persistence_spec.rb
393
+ - spec/unit/persistence/no_brainer_persistence_multiple_spec.rb
394
+ - spec/unit/persistence/no_brainer_persistence_spec.rb
395
+ - spec/unit/persistence/redis_persistence_multiple_spec.rb
272
396
  - spec/unit/persistence/redis_persistence_spec.rb
273
397
  - spec/unit/persistence/sequel_persistence_multiple_spec.rb
274
398
  - spec/unit/persistence/sequel_persistence_spec.rb
@@ -282,12 +406,15 @@ files:
282
406
  - spec/unit/states_on_one_line_example_spec.rb
283
407
  - spec/unit/subclassing_multiple_spec.rb
284
408
  - spec/unit/subclassing_spec.rb
409
+ - spec/unit/timestamps_spec.rb
285
410
  - spec/unit/transition_spec.rb
411
+ - test/minitest_helper.rb
412
+ - test/unit/minitest_matcher_test.rb
286
413
  homepage: https://github.com/aasm/aasm
287
414
  licenses:
288
415
  - MIT
289
416
  metadata: {}
290
- post_install_message:
417
+ post_install_message:
291
418
  rdoc_options: []
292
419
  require_paths:
293
420
  - lib
@@ -302,37 +429,49 @@ required_rubygems_version: !ruby/object:Gem::Requirement
302
429
  - !ruby/object:Gem::Version
303
430
  version: '0'
304
431
  requirements: []
305
- rubyforge_project:
306
- rubygems_version: 2.5.1
307
- signing_key:
432
+ rubygems_version: 3.0.3
433
+ signing_key:
308
434
  specification_version: 4
309
435
  summary: State machine mixin for Ruby objects
310
436
  test_files:
311
437
  - spec/database.rb
312
438
  - spec/database.yml
313
439
  - spec/en.yml
314
- - spec/en_deprecated_style.yml
315
440
  - spec/generators/active_record_generator_spec.rb
316
441
  - spec/generators/mongoid_generator_spec.rb
442
+ - spec/generators/no_brainer_generator_spec.rb
443
+ - spec/localizer_test_model_deprecated_style.yml
444
+ - spec/localizer_test_model_new_style.yml
445
+ - spec/models/active_record/active_record_callback.rb
317
446
  - spec/models/active_record/basic_active_record_two_state_machines_example.rb
318
447
  - spec/models/active_record/complex_active_record_example.rb
319
448
  - spec/models/active_record/derivate_new_dsl.rb
320
449
  - spec/models/active_record/false_state.rb
321
450
  - spec/models/active_record/gate.rb
451
+ - spec/models/active_record/instance_level_skip_validation_example.rb
452
+ - spec/models/active_record/invalid_persistor.rb
322
453
  - spec/models/active_record/localizer_test_model.rb
454
+ - spec/models/active_record/namespaced.rb
323
455
  - spec/models/active_record/no_direct_assignment.rb
324
456
  - spec/models/active_record/no_scope.rb
325
457
  - spec/models/active_record/persisted_state.rb
458
+ - spec/models/active_record/person.rb
326
459
  - spec/models/active_record/provided_and_persisted_state.rb
327
460
  - spec/models/active_record/reader.rb
328
461
  - spec/models/active_record/readme_job.rb
462
+ - spec/models/active_record/silent_persistor.rb
329
463
  - spec/models/active_record/simple_new_dsl.rb
330
464
  - spec/models/active_record/thief.rb
465
+ - spec/models/active_record/timestamp_example.rb
466
+ - spec/models/active_record/transactor.rb
331
467
  - spec/models/active_record/transient.rb
468
+ - spec/models/active_record/validator.rb
332
469
  - spec/models/active_record/with_enum.rb
333
470
  - spec/models/active_record/with_enum_without_column.rb
334
471
  - spec/models/active_record/with_false_enum.rb
335
472
  - spec/models/active_record/with_true_enum.rb
473
+ - spec/models/active_record/work.rb
474
+ - spec/models/active_record/worker.rb
336
475
  - spec/models/active_record/writer.rb
337
476
  - spec/models/basic_two_state_machines_example.rb
338
477
  - spec/models/callbacks/basic.rb
@@ -356,36 +495,54 @@ test_files:
356
495
  - spec/models/dynamoid/dynamoid_simple.rb
357
496
  - spec/models/foo.rb
358
497
  - spec/models/foo_callback_multiple.rb
498
+ - spec/models/guard_arguments_check.rb
359
499
  - spec/models/guard_with_params.rb
360
500
  - spec/models/guard_with_params_multiple.rb
361
501
  - spec/models/guardian.rb
362
502
  - spec/models/guardian_multiple.rb
503
+ - spec/models/guardian_without_from_specified.rb
363
504
  - 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
505
  - spec/models/mongoid/complex_mongoid_example.rb
506
+ - spec/models/mongoid/invalid_persistor_mongoid.rb
370
507
  - spec/models/mongoid/mongoid_relationships.rb
371
508
  - spec/models/mongoid/no_scope_mongoid.rb
509
+ - spec/models/mongoid/silent_persistor_mongoid.rb
372
510
  - spec/models/mongoid/simple_mongoid.rb
373
511
  - spec/models/mongoid/simple_new_dsl_mongoid.rb
512
+ - spec/models/mongoid/timestamp_example_mongoid.rb
513
+ - spec/models/mongoid/validator_mongoid.rb
374
514
  - spec/models/multi_transitioner.rb
515
+ - spec/models/multiple_transitions_that_differ_only_by_guard.rb
375
516
  - spec/models/namespaced_multiple_example.rb
376
517
  - spec/models/no_initial_state.rb
518
+ - spec/models/nobrainer/complex_no_brainer_example.rb
519
+ - spec/models/nobrainer/invalid_persistor_no_brainer.rb
520
+ - spec/models/nobrainer/no_scope_no_brainer.rb
521
+ - spec/models/nobrainer/nobrainer_relationships.rb
522
+ - spec/models/nobrainer/silent_persistor_no_brainer.rb
523
+ - spec/models/nobrainer/simple_new_dsl_nobrainer.rb
524
+ - spec/models/nobrainer/simple_no_brainer.rb
525
+ - spec/models/nobrainer/validator_no_brainer.rb
377
526
  - spec/models/not_auto_loaded/process.rb
378
527
  - spec/models/parametrised_event.rb
379
528
  - spec/models/parametrised_event_multiple.rb
380
529
  - spec/models/process_with_new_dsl.rb
381
530
  - spec/models/provided_state.rb
531
+ - spec/models/redis/complex_redis_example.rb
532
+ - spec/models/redis/redis_multiple.rb
533
+ - spec/models/redis/redis_simple.rb
382
534
  - spec/models/sequel/complex_sequel_example.rb
535
+ - spec/models/sequel/invalid_persistor.rb
383
536
  - spec/models/sequel/sequel_multiple.rb
384
537
  - spec/models/sequel/sequel_simple.rb
538
+ - spec/models/sequel/silent_persistor.rb
539
+ - spec/models/sequel/transactor.rb
540
+ - spec/models/sequel/validator.rb
541
+ - spec/models/sequel/worker.rb
385
542
  - spec/models/silencer.rb
386
- - spec/models/silent_persistor.rb
387
543
  - spec/models/simple_custom_example.rb
388
544
  - spec/models/simple_example.rb
545
+ - spec/models/simple_example_with_guard_args.rb
389
546
  - spec/models/simple_multiple_example.rb
390
547
  - spec/models/state_machine_with_failed_event.rb
391
548
  - spec/models/states_on_one_line_example.rb
@@ -394,11 +551,18 @@ test_files:
394
551
  - spec/models/sub_classing.rb
395
552
  - spec/models/super_class.rb
396
553
  - spec/models/this_name_better_not_be_in_use.rb
397
- - spec/models/transactor.rb
554
+ - spec/models/timestamps_example.rb
555
+ - spec/models/timestamps_with_named_machine_example.rb
398
556
  - spec/models/valid_state_name.rb
399
- - spec/models/validator.rb
400
- - spec/models/worker.rb
401
557
  - spec/spec_helper.rb
558
+ - spec/spec_helpers/active_record.rb
559
+ - spec/spec_helpers/dynamoid.rb
560
+ - spec/spec_helpers/mongoid.rb
561
+ - spec/spec_helpers/nobrainer.rb
562
+ - spec/spec_helpers/redis.rb
563
+ - spec/spec_helpers/remove_warnings.rb
564
+ - spec/spec_helpers/sequel.rb
565
+ - spec/unit/abstract_class_spec.rb
402
566
  - spec/unit/api_spec.rb
403
567
  - spec/unit/basic_two_state_machines_example_spec.rb
404
568
  - spec/unit/callback_multiple_spec.rb
@@ -410,16 +574,24 @@ test_files:
410
574
  - spec/unit/event_naming_spec.rb
411
575
  - spec/unit/event_spec.rb
412
576
  - spec/unit/exception_spec.rb
577
+ - spec/unit/guard_arguments_check_spec.rb
413
578
  - spec/unit/guard_multiple_spec.rb
414
579
  - spec/unit/guard_spec.rb
415
580
  - spec/unit/guard_with_params_multiple_spec.rb
416
581
  - spec/unit/guard_with_params_spec.rb
582
+ - spec/unit/guard_without_from_specified_spec.rb
417
583
  - spec/unit/initial_state_multiple_spec.rb
418
584
  - spec/unit/initial_state_spec.rb
419
585
  - spec/unit/inspection_multiple_spec.rb
420
586
  - spec/unit/inspection_spec.rb
587
+ - spec/unit/invoker_spec.rb
588
+ - spec/unit/invokers/base_invoker_spec.rb
589
+ - spec/unit/invokers/class_invoker_spec.rb
590
+ - spec/unit/invokers/literal_invoker_spec.rb
591
+ - spec/unit/invokers/proc_invoker_spec.rb
421
592
  - spec/unit/localizer_spec.rb
422
593
  - spec/unit/memory_leak_spec.rb
594
+ - spec/unit/multiple_transitions_that_differ_only_by_guard_spec.rb
423
595
  - spec/unit/namespaced_multiple_example_spec.rb
424
596
  - spec/unit/new_dsl_spec.rb
425
597
  - spec/unit/override_warning_spec.rb
@@ -427,10 +599,11 @@ test_files:
427
599
  - spec/unit/persistence/active_record_persistence_spec.rb
428
600
  - spec/unit/persistence/dynamoid_persistence_multiple_spec.rb
429
601
  - 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
602
  - spec/unit/persistence/mongoid_persistence_multiple_spec.rb
433
603
  - spec/unit/persistence/mongoid_persistence_spec.rb
604
+ - spec/unit/persistence/no_brainer_persistence_multiple_spec.rb
605
+ - spec/unit/persistence/no_brainer_persistence_spec.rb
606
+ - spec/unit/persistence/redis_persistence_multiple_spec.rb
434
607
  - spec/unit/persistence/redis_persistence_spec.rb
435
608
  - spec/unit/persistence/sequel_persistence_multiple_spec.rb
436
609
  - spec/unit/persistence/sequel_persistence_spec.rb
@@ -444,4 +617,7 @@ test_files:
444
617
  - spec/unit/states_on_one_line_example_spec.rb
445
618
  - spec/unit/subclassing_multiple_spec.rb
446
619
  - spec/unit/subclassing_spec.rb
620
+ - spec/unit/timestamps_spec.rb
447
621
  - spec/unit/transition_spec.rb
622
+ - test/minitest_helper.rb
623
+ - test/unit/minitest_matcher_test.rb
data/callbacks.txt DELETED
@@ -1,51 +0,0 @@
1
- callbacks
2
-
3
- AASM 3
4
-
5
- begin
6
- old_state exit # old? should be deprecated -> use old_state.before_exit instead
7
- event before
8
- old_state before_exit
9
- new_state before_enter
10
- new_state enter # old? should be deprecated -> use new_state.before_enter instead
11
- ...update state...
12
- transition guard
13
- event guard
14
- transition on_transition
15
- event success # if persist successful
16
- old_state after_exit
17
- new_state after_enter
18
- event after
19
- rescue
20
- event error
21
- end
22
-
23
- AASM 4
24
-
25
- todo
26
-
27
- done
28
- - move event.before before everything else
29
- - move old_state.before_exit before old_state.exit
30
- - move event.guard before transition.guard
31
- - fire guards before running state callbacks (test run)
32
-
33
- begin
34
- event before
35
- event guard # test run
36
- transition guard # test run
37
- old_state before_exit
38
- old_state exit
39
- new_state before_enter
40
- new_state enter
41
- event guard
42
- transition guard
43
- transition on_transition
44
- ...update state...
45
- event success # if persist successful
46
- old_state after_exit
47
- new_state after_enter
48
- event after
49
- rescue
50
- event error
51
- end
@@ -1,15 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gem "sqlite3", :platforms => :ruby
4
- gem 'rubysl', :platforms => :rbx
5
- gem 'rubinius-developer_tools', :platforms => :rbx
6
- gem "jruby-openssl", :platforms => :jruby
7
- gem "activerecord-jdbcsqlite3-adapter", :platforms => :jruby
8
- gem "rails", :github => "rails/rails", :branch => "3-2-stable"
9
- gem 'mongoid', '~>3.1' if Gem::Version.create(RUBY_VERSION.dup) >= Gem::Version.create('1.9.3')
10
- gem 'sequel'
11
- gem 'mongo_mapper', '~>0.13'
12
- gem 'bson_ext', :platforms => :ruby
13
- gem 'test-unit', '~> 3.0'
14
-
15
- gemspec :path => "../"
@@ -1,16 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gem "sqlite3", :platforms => :ruby
4
- gem 'rubysl', :platforms => :rbx
5
- gem 'rubinius-developer_tools', :platforms => :rbx
6
- gem "jruby-openssl", :platforms => :jruby
7
- gem "activerecord-jdbcsqlite3-adapter", :platforms => :jruby
8
- gem "mime-types", "~> 2" if Gem::Version.create(RUBY_VERSION.dup) <= Gem::Version.create('1.9.3')
9
- gem "rails", "4.0.13"
10
- gem 'mongoid', '~>4.0' if Gem::Version.create(RUBY_VERSION.dup) >= Gem::Version.create('1.9.3')
11
- gem 'sequel'
12
- gem 'dynamoid', '~> 1', :platforms => :ruby
13
- gem 'aws-sdk', '~>2', :platforms => :ruby
14
- gem "redis-objects"
15
-
16
- gemspec :path => "../"
@@ -1,16 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gem "sqlite3", :platforms => :ruby
4
- gem 'rubysl', :platforms => :rbx
5
- gem 'rubinius-developer_tools', :platforms => :rbx
6
- gem "jruby-openssl", :platforms => :jruby
7
- gem "activerecord-jdbcsqlite3-adapter", :platforms => :jruby
8
- gem "mime-types", "~> 2" if Gem::Version.create(RUBY_VERSION.dup) <= Gem::Version.create('1.9.3')
9
- gem "rails", "4.0.13"
10
- gem 'sequel'
11
- gem 'mongo_mapper', '~>0.13'
12
- gem 'bson_ext', :platforms => :ruby
13
- gem 'dynamoid', '~> 1', :platforms => :ruby
14
- gem 'aws-sdk', '~>2', :platforms => :ruby
15
-
16
- gemspec :path => "../"
@@ -1,17 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gem "sqlite3", :platforms => :ruby
4
- gem 'rubysl', :platforms => :rbx
5
- gem 'rubinius-developer_tools', :platforms => :rbx
6
- gem "jruby-openssl", :platforms => :jruby
7
- gem "activerecord-jdbcsqlite3-adapter", :platforms => :jruby
8
- gem "mime-types", "~> 2" if Gem::Version.create(RUBY_VERSION.dup) <= Gem::Version.create('1.9.3')
9
- gem "rails", "4.2.5"
10
- gem 'sequel'
11
- gem 'mongo_mapper'
12
- gem 'bson_ext', :platforms => :ruby
13
- gem 'dynamoid', '~> 1', :platforms => :ruby
14
- gem 'aws-sdk', '~>2', :platforms => :ruby
15
- gem "redis-objects"
16
-
17
- gemspec :path => "../"