aasm 4.11.1 → 4.12.1
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.
- checksums.yaml +4 -4
- data/.travis.yml +19 -16
- data/Appraisals +46 -0
- data/CHANGELOG.md +19 -0
- data/CONTRIBUTING.md +24 -0
- data/Gemfile +4 -21
- data/README.md +154 -39
- data/Rakefile +6 -1
- data/TESTING.md +25 -0
- data/aasm.gemspec +3 -0
- data/gemfiles/rails_3.2.gemfile +13 -0
- data/gemfiles/rails_4.0.gemfile +8 -9
- data/gemfiles/rails_4.2.gemfile +10 -9
- data/gemfiles/rails_4.2_mongoid_5.gemfile +5 -9
- data/gemfiles/rails_5.0.gemfile +8 -16
- data/lib/aasm/aasm.rb +9 -3
- data/lib/aasm/base.rb +11 -1
- data/lib/aasm/configuration.rb +4 -0
- data/lib/aasm/core/event.rb +18 -4
- data/lib/aasm/core/state.rb +7 -0
- data/lib/aasm/core/transition.rb +10 -1
- data/lib/aasm/instance_base.rb +0 -2
- data/lib/aasm/minitest/allow_event.rb +13 -0
- data/lib/aasm/minitest/allow_transition_to.rb +13 -0
- data/lib/aasm/minitest/have_state.rb +13 -0
- data/lib/aasm/minitest/transition_from.rb +21 -0
- data/lib/aasm/minitest.rb +5 -0
- data/lib/aasm/minitest_spec.rb +15 -0
- data/lib/aasm/persistence/active_record_persistence.rb +25 -101
- data/lib/aasm/persistence/base.rb +7 -3
- data/lib/aasm/persistence/mongoid_persistence.rb +25 -31
- data/lib/aasm/persistence/orm.rb +142 -0
- data/lib/aasm/persistence/redis_persistence.rb +16 -11
- data/lib/aasm/persistence/sequel_persistence.rb +36 -63
- data/lib/aasm/persistence.rb +0 -3
- data/lib/aasm/state_machine.rb +4 -2
- data/lib/aasm/state_machine_store.rb +5 -2
- data/lib/aasm/version.rb +1 -1
- data/lib/generators/active_record/templates/migration.rb +1 -1
- data/lib/generators/active_record/templates/migration_existing.rb +1 -1
- data/lib/motion-aasm.rb +2 -1
- data/spec/generators/active_record_generator_spec.rb +42 -39
- data/spec/generators/mongoid_generator_spec.rb +4 -6
- data/spec/models/active_record/complex_active_record_example.rb +5 -1
- data/spec/models/{invalid_persistor.rb → active_record/invalid_persistor.rb} +0 -2
- data/spec/models/{silent_persistor.rb → active_record/silent_persistor.rb} +0 -2
- data/spec/models/{transactor.rb → active_record/transactor.rb} +0 -2
- data/spec/models/{validator.rb → active_record/validator.rb} +0 -2
- data/spec/models/callbacks/basic.rb +5 -2
- data/spec/models/guard_with_params.rb +1 -1
- data/spec/models/guardian_without_from_specified.rb +18 -0
- data/spec/models/mongoid/invalid_persistor_mongoid.rb +39 -0
- data/spec/models/mongoid/silent_persistor_mongoid.rb +39 -0
- data/spec/models/mongoid/validator_mongoid.rb +100 -0
- data/spec/models/multiple_transitions_that_differ_only_by_guard.rb +31 -0
- data/spec/models/namespaced_multiple_example.rb +14 -0
- data/spec/models/parametrised_event.rb +7 -0
- data/spec/models/{mongo_mapper/complex_mongo_mapper_example.rb → redis/complex_redis_example.rb} +8 -5
- data/spec/models/redis/redis_multiple.rb +20 -0
- data/spec/models/redis/redis_simple.rb +20 -0
- data/spec/models/sequel/complex_sequel_example.rb +4 -3
- data/spec/models/sequel/invalid_persistor.rb +52 -0
- data/spec/models/sequel/sequel_multiple.rb +13 -13
- data/spec/models/sequel/sequel_simple.rb +13 -12
- data/spec/models/sequel/silent_persistor.rb +50 -0
- data/spec/models/sequel/transactor.rb +112 -0
- data/spec/models/sequel/validator.rb +93 -0
- data/spec/models/sequel/worker.rb +12 -0
- data/spec/models/simple_multiple_example.rb +12 -0
- data/spec/models/sub_class.rb +34 -0
- data/spec/spec_helper.rb +0 -33
- data/spec/spec_helpers/active_record.rb +7 -0
- data/spec/spec_helpers/dynamoid.rb +33 -0
- data/spec/spec_helpers/mongoid.rb +7 -0
- data/spec/spec_helpers/redis.rb +15 -0
- data/spec/spec_helpers/remove_warnings.rb +1 -0
- data/spec/spec_helpers/sequel.rb +7 -0
- data/spec/unit/api_spec.rb +76 -73
- data/spec/unit/callbacks_spec.rb +5 -0
- data/spec/unit/event_spec.rb +12 -0
- data/spec/unit/guard_spec.rb +17 -0
- data/spec/unit/guard_with_params_spec.rb +4 -0
- data/spec/unit/guard_without_from_specified_spec.rb +10 -0
- data/spec/unit/localizer_spec.rb +55 -53
- data/spec/unit/multiple_transitions_that_differ_only_by_guard_spec.rb +14 -0
- data/spec/unit/namespaced_multiple_example_spec.rb +22 -0
- data/spec/unit/override_warning_spec.rb +8 -0
- data/spec/unit/persistence/active_record_persistence_multiple_spec.rb +453 -449
- data/spec/unit/persistence/active_record_persistence_spec.rb +524 -502
- data/spec/unit/persistence/dynamoid_persistence_multiple_spec.rb +4 -9
- data/spec/unit/persistence/dynamoid_persistence_spec.rb +4 -9
- data/spec/unit/persistence/mongoid_persistence_multiple_spec.rb +83 -9
- data/spec/unit/persistence/mongoid_persistence_spec.rb +85 -9
- data/spec/unit/persistence/redis_persistence_multiple_spec.rb +88 -0
- data/spec/unit/persistence/redis_persistence_spec.rb +8 -32
- data/spec/unit/persistence/sequel_persistence_multiple_spec.rb +6 -11
- data/spec/unit/persistence/sequel_persistence_spec.rb +278 -10
- data/spec/unit/simple_multiple_example_spec.rb +28 -0
- data/spec/unit/subclassing_multiple_spec.rb +37 -2
- data/spec/unit/subclassing_spec.rb +17 -2
- data/test/minitest_helper.rb +57 -0
- data/test/unit/minitest_matcher_test.rb +80 -0
- metadata +99 -28
- data/gemfiles/rails_3.2_stable.gemfile +0 -15
- data/gemfiles/rails_4.0_mongo_mapper.gemfile +0 -16
- data/gemfiles/rails_4.2_mongo_mapper.gemfile +0 -17
- data/lib/aasm/persistence/mongo_mapper_persistence.rb +0 -163
- data/spec/models/mongo_mapper/no_scope_mongo_mapper.rb +0 -21
- data/spec/models/mongo_mapper/simple_mongo_mapper.rb +0 -23
- data/spec/models/mongo_mapper/simple_new_dsl_mongo_mapper.rb +0 -25
- data/spec/unit/persistence/mongo_mapper_persistence_multiple_spec.rb +0 -149
- data/spec/unit/persistence/mongo_mapper_persistence_spec.rb +0 -96
- /data/spec/models/{worker.rb → active_record/worker.rb} +0 -0
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.
|
|
4
|
+
version: 4.12.1
|
|
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:
|
|
12
|
+
date: 2017-07-18 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.
|
|
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
|
|
@@ -121,13 +150,19 @@ files:
|
|
|
121
150
|
- lib/aasm/errors.rb
|
|
122
151
|
- lib/aasm/instance_base.rb
|
|
123
152
|
- lib/aasm/localizer.rb
|
|
153
|
+
- lib/aasm/minitest.rb
|
|
154
|
+
- lib/aasm/minitest/allow_event.rb
|
|
155
|
+
- lib/aasm/minitest/allow_transition_to.rb
|
|
156
|
+
- lib/aasm/minitest/have_state.rb
|
|
157
|
+
- lib/aasm/minitest/transition_from.rb
|
|
158
|
+
- lib/aasm/minitest_spec.rb
|
|
124
159
|
- lib/aasm/persistence.rb
|
|
125
160
|
- lib/aasm/persistence/active_record_persistence.rb
|
|
126
161
|
- lib/aasm/persistence/base.rb
|
|
127
162
|
- lib/aasm/persistence/core_data_query_persistence.rb
|
|
128
163
|
- lib/aasm/persistence/dynamoid_persistence.rb
|
|
129
|
-
- lib/aasm/persistence/mongo_mapper_persistence.rb
|
|
130
164
|
- lib/aasm/persistence/mongoid_persistence.rb
|
|
165
|
+
- lib/aasm/persistence/orm.rb
|
|
131
166
|
- lib/aasm/persistence/plain_persistence.rb
|
|
132
167
|
- lib/aasm/persistence/redis_persistence.rb
|
|
133
168
|
- lib/aasm/persistence/sequel_persistence.rb
|
|
@@ -157,6 +192,7 @@ files:
|
|
|
157
192
|
- spec/models/active_record/derivate_new_dsl.rb
|
|
158
193
|
- spec/models/active_record/false_state.rb
|
|
159
194
|
- spec/models/active_record/gate.rb
|
|
195
|
+
- spec/models/active_record/invalid_persistor.rb
|
|
160
196
|
- spec/models/active_record/localizer_test_model.rb
|
|
161
197
|
- spec/models/active_record/no_direct_assignment.rb
|
|
162
198
|
- spec/models/active_record/no_scope.rb
|
|
@@ -164,13 +200,17 @@ files:
|
|
|
164
200
|
- spec/models/active_record/provided_and_persisted_state.rb
|
|
165
201
|
- spec/models/active_record/reader.rb
|
|
166
202
|
- spec/models/active_record/readme_job.rb
|
|
203
|
+
- spec/models/active_record/silent_persistor.rb
|
|
167
204
|
- spec/models/active_record/simple_new_dsl.rb
|
|
168
205
|
- spec/models/active_record/thief.rb
|
|
206
|
+
- spec/models/active_record/transactor.rb
|
|
169
207
|
- spec/models/active_record/transient.rb
|
|
208
|
+
- spec/models/active_record/validator.rb
|
|
170
209
|
- spec/models/active_record/with_enum.rb
|
|
171
210
|
- spec/models/active_record/with_enum_without_column.rb
|
|
172
211
|
- spec/models/active_record/with_false_enum.rb
|
|
173
212
|
- spec/models/active_record/with_true_enum.rb
|
|
213
|
+
- spec/models/active_record/worker.rb
|
|
174
214
|
- spec/models/active_record/writer.rb
|
|
175
215
|
- spec/models/basic_two_state_machines_example.rb
|
|
176
216
|
- spec/models/callbacks/basic.rb
|
|
@@ -198,18 +238,18 @@ files:
|
|
|
198
238
|
- spec/models/guard_with_params_multiple.rb
|
|
199
239
|
- spec/models/guardian.rb
|
|
200
240
|
- spec/models/guardian_multiple.rb
|
|
241
|
+
- spec/models/guardian_without_from_specified.rb
|
|
201
242
|
- 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
243
|
- spec/models/mongoid/complex_mongoid_example.rb
|
|
244
|
+
- spec/models/mongoid/invalid_persistor_mongoid.rb
|
|
208
245
|
- spec/models/mongoid/mongoid_relationships.rb
|
|
209
246
|
- spec/models/mongoid/no_scope_mongoid.rb
|
|
247
|
+
- spec/models/mongoid/silent_persistor_mongoid.rb
|
|
210
248
|
- spec/models/mongoid/simple_mongoid.rb
|
|
211
249
|
- spec/models/mongoid/simple_new_dsl_mongoid.rb
|
|
250
|
+
- spec/models/mongoid/validator_mongoid.rb
|
|
212
251
|
- spec/models/multi_transitioner.rb
|
|
252
|
+
- spec/models/multiple_transitions_that_differ_only_by_guard.rb
|
|
213
253
|
- spec/models/namespaced_multiple_example.rb
|
|
214
254
|
- spec/models/no_initial_state.rb
|
|
215
255
|
- spec/models/not_auto_loaded/process.rb
|
|
@@ -217,11 +257,18 @@ files:
|
|
|
217
257
|
- spec/models/parametrised_event_multiple.rb
|
|
218
258
|
- spec/models/process_with_new_dsl.rb
|
|
219
259
|
- spec/models/provided_state.rb
|
|
260
|
+
- spec/models/redis/complex_redis_example.rb
|
|
261
|
+
- spec/models/redis/redis_multiple.rb
|
|
262
|
+
- spec/models/redis/redis_simple.rb
|
|
220
263
|
- spec/models/sequel/complex_sequel_example.rb
|
|
264
|
+
- spec/models/sequel/invalid_persistor.rb
|
|
221
265
|
- spec/models/sequel/sequel_multiple.rb
|
|
222
266
|
- spec/models/sequel/sequel_simple.rb
|
|
267
|
+
- spec/models/sequel/silent_persistor.rb
|
|
268
|
+
- spec/models/sequel/transactor.rb
|
|
269
|
+
- spec/models/sequel/validator.rb
|
|
270
|
+
- spec/models/sequel/worker.rb
|
|
223
271
|
- spec/models/silencer.rb
|
|
224
|
-
- spec/models/silent_persistor.rb
|
|
225
272
|
- spec/models/simple_custom_example.rb
|
|
226
273
|
- spec/models/simple_example.rb
|
|
227
274
|
- spec/models/simple_multiple_example.rb
|
|
@@ -232,11 +279,14 @@ files:
|
|
|
232
279
|
- spec/models/sub_classing.rb
|
|
233
280
|
- spec/models/super_class.rb
|
|
234
281
|
- spec/models/this_name_better_not_be_in_use.rb
|
|
235
|
-
- spec/models/transactor.rb
|
|
236
282
|
- spec/models/valid_state_name.rb
|
|
237
|
-
- spec/models/validator.rb
|
|
238
|
-
- spec/models/worker.rb
|
|
239
283
|
- spec/spec_helper.rb
|
|
284
|
+
- spec/spec_helpers/active_record.rb
|
|
285
|
+
- spec/spec_helpers/dynamoid.rb
|
|
286
|
+
- spec/spec_helpers/mongoid.rb
|
|
287
|
+
- spec/spec_helpers/redis.rb
|
|
288
|
+
- spec/spec_helpers/remove_warnings.rb
|
|
289
|
+
- spec/spec_helpers/sequel.rb
|
|
240
290
|
- spec/unit/api_spec.rb
|
|
241
291
|
- spec/unit/basic_two_state_machines_example_spec.rb
|
|
242
292
|
- spec/unit/callback_multiple_spec.rb
|
|
@@ -252,12 +302,14 @@ files:
|
|
|
252
302
|
- spec/unit/guard_spec.rb
|
|
253
303
|
- spec/unit/guard_with_params_multiple_spec.rb
|
|
254
304
|
- spec/unit/guard_with_params_spec.rb
|
|
305
|
+
- spec/unit/guard_without_from_specified_spec.rb
|
|
255
306
|
- spec/unit/initial_state_multiple_spec.rb
|
|
256
307
|
- spec/unit/initial_state_spec.rb
|
|
257
308
|
- spec/unit/inspection_multiple_spec.rb
|
|
258
309
|
- spec/unit/inspection_spec.rb
|
|
259
310
|
- spec/unit/localizer_spec.rb
|
|
260
311
|
- spec/unit/memory_leak_spec.rb
|
|
312
|
+
- spec/unit/multiple_transitions_that_differ_only_by_guard_spec.rb
|
|
261
313
|
- spec/unit/namespaced_multiple_example_spec.rb
|
|
262
314
|
- spec/unit/new_dsl_spec.rb
|
|
263
315
|
- spec/unit/override_warning_spec.rb
|
|
@@ -265,10 +317,9 @@ files:
|
|
|
265
317
|
- spec/unit/persistence/active_record_persistence_spec.rb
|
|
266
318
|
- spec/unit/persistence/dynamoid_persistence_multiple_spec.rb
|
|
267
319
|
- 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
320
|
- spec/unit/persistence/mongoid_persistence_multiple_spec.rb
|
|
271
321
|
- spec/unit/persistence/mongoid_persistence_spec.rb
|
|
322
|
+
- spec/unit/persistence/redis_persistence_multiple_spec.rb
|
|
272
323
|
- spec/unit/persistence/redis_persistence_spec.rb
|
|
273
324
|
- spec/unit/persistence/sequel_persistence_multiple_spec.rb
|
|
274
325
|
- spec/unit/persistence/sequel_persistence_spec.rb
|
|
@@ -283,6 +334,8 @@ files:
|
|
|
283
334
|
- spec/unit/subclassing_multiple_spec.rb
|
|
284
335
|
- spec/unit/subclassing_spec.rb
|
|
285
336
|
- spec/unit/transition_spec.rb
|
|
337
|
+
- test/minitest_helper.rb
|
|
338
|
+
- test/unit/minitest_matcher_test.rb
|
|
286
339
|
homepage: https://github.com/aasm/aasm
|
|
287
340
|
licenses:
|
|
288
341
|
- MIT
|
|
@@ -319,6 +372,7 @@ test_files:
|
|
|
319
372
|
- spec/models/active_record/derivate_new_dsl.rb
|
|
320
373
|
- spec/models/active_record/false_state.rb
|
|
321
374
|
- spec/models/active_record/gate.rb
|
|
375
|
+
- spec/models/active_record/invalid_persistor.rb
|
|
322
376
|
- spec/models/active_record/localizer_test_model.rb
|
|
323
377
|
- spec/models/active_record/no_direct_assignment.rb
|
|
324
378
|
- spec/models/active_record/no_scope.rb
|
|
@@ -326,13 +380,17 @@ test_files:
|
|
|
326
380
|
- spec/models/active_record/provided_and_persisted_state.rb
|
|
327
381
|
- spec/models/active_record/reader.rb
|
|
328
382
|
- spec/models/active_record/readme_job.rb
|
|
383
|
+
- spec/models/active_record/silent_persistor.rb
|
|
329
384
|
- spec/models/active_record/simple_new_dsl.rb
|
|
330
385
|
- spec/models/active_record/thief.rb
|
|
386
|
+
- spec/models/active_record/transactor.rb
|
|
331
387
|
- spec/models/active_record/transient.rb
|
|
388
|
+
- spec/models/active_record/validator.rb
|
|
332
389
|
- spec/models/active_record/with_enum.rb
|
|
333
390
|
- spec/models/active_record/with_enum_without_column.rb
|
|
334
391
|
- spec/models/active_record/with_false_enum.rb
|
|
335
392
|
- spec/models/active_record/with_true_enum.rb
|
|
393
|
+
- spec/models/active_record/worker.rb
|
|
336
394
|
- spec/models/active_record/writer.rb
|
|
337
395
|
- spec/models/basic_two_state_machines_example.rb
|
|
338
396
|
- spec/models/callbacks/basic.rb
|
|
@@ -360,18 +418,18 @@ test_files:
|
|
|
360
418
|
- spec/models/guard_with_params_multiple.rb
|
|
361
419
|
- spec/models/guardian.rb
|
|
362
420
|
- spec/models/guardian_multiple.rb
|
|
421
|
+
- spec/models/guardian_without_from_specified.rb
|
|
363
422
|
- 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
423
|
- spec/models/mongoid/complex_mongoid_example.rb
|
|
424
|
+
- spec/models/mongoid/invalid_persistor_mongoid.rb
|
|
370
425
|
- spec/models/mongoid/mongoid_relationships.rb
|
|
371
426
|
- spec/models/mongoid/no_scope_mongoid.rb
|
|
427
|
+
- spec/models/mongoid/silent_persistor_mongoid.rb
|
|
372
428
|
- spec/models/mongoid/simple_mongoid.rb
|
|
373
429
|
- spec/models/mongoid/simple_new_dsl_mongoid.rb
|
|
430
|
+
- spec/models/mongoid/validator_mongoid.rb
|
|
374
431
|
- spec/models/multi_transitioner.rb
|
|
432
|
+
- spec/models/multiple_transitions_that_differ_only_by_guard.rb
|
|
375
433
|
- spec/models/namespaced_multiple_example.rb
|
|
376
434
|
- spec/models/no_initial_state.rb
|
|
377
435
|
- spec/models/not_auto_loaded/process.rb
|
|
@@ -379,11 +437,18 @@ test_files:
|
|
|
379
437
|
- spec/models/parametrised_event_multiple.rb
|
|
380
438
|
- spec/models/process_with_new_dsl.rb
|
|
381
439
|
- spec/models/provided_state.rb
|
|
440
|
+
- spec/models/redis/complex_redis_example.rb
|
|
441
|
+
- spec/models/redis/redis_multiple.rb
|
|
442
|
+
- spec/models/redis/redis_simple.rb
|
|
382
443
|
- spec/models/sequel/complex_sequel_example.rb
|
|
444
|
+
- spec/models/sequel/invalid_persistor.rb
|
|
383
445
|
- spec/models/sequel/sequel_multiple.rb
|
|
384
446
|
- spec/models/sequel/sequel_simple.rb
|
|
447
|
+
- spec/models/sequel/silent_persistor.rb
|
|
448
|
+
- spec/models/sequel/transactor.rb
|
|
449
|
+
- spec/models/sequel/validator.rb
|
|
450
|
+
- spec/models/sequel/worker.rb
|
|
385
451
|
- spec/models/silencer.rb
|
|
386
|
-
- spec/models/silent_persistor.rb
|
|
387
452
|
- spec/models/simple_custom_example.rb
|
|
388
453
|
- spec/models/simple_example.rb
|
|
389
454
|
- spec/models/simple_multiple_example.rb
|
|
@@ -394,11 +459,14 @@ test_files:
|
|
|
394
459
|
- spec/models/sub_classing.rb
|
|
395
460
|
- spec/models/super_class.rb
|
|
396
461
|
- spec/models/this_name_better_not_be_in_use.rb
|
|
397
|
-
- spec/models/transactor.rb
|
|
398
462
|
- spec/models/valid_state_name.rb
|
|
399
|
-
- spec/models/validator.rb
|
|
400
|
-
- spec/models/worker.rb
|
|
401
463
|
- spec/spec_helper.rb
|
|
464
|
+
- spec/spec_helpers/active_record.rb
|
|
465
|
+
- spec/spec_helpers/dynamoid.rb
|
|
466
|
+
- spec/spec_helpers/mongoid.rb
|
|
467
|
+
- spec/spec_helpers/redis.rb
|
|
468
|
+
- spec/spec_helpers/remove_warnings.rb
|
|
469
|
+
- spec/spec_helpers/sequel.rb
|
|
402
470
|
- spec/unit/api_spec.rb
|
|
403
471
|
- spec/unit/basic_two_state_machines_example_spec.rb
|
|
404
472
|
- spec/unit/callback_multiple_spec.rb
|
|
@@ -414,12 +482,14 @@ test_files:
|
|
|
414
482
|
- spec/unit/guard_spec.rb
|
|
415
483
|
- spec/unit/guard_with_params_multiple_spec.rb
|
|
416
484
|
- spec/unit/guard_with_params_spec.rb
|
|
485
|
+
- spec/unit/guard_without_from_specified_spec.rb
|
|
417
486
|
- spec/unit/initial_state_multiple_spec.rb
|
|
418
487
|
- spec/unit/initial_state_spec.rb
|
|
419
488
|
- spec/unit/inspection_multiple_spec.rb
|
|
420
489
|
- spec/unit/inspection_spec.rb
|
|
421
490
|
- spec/unit/localizer_spec.rb
|
|
422
491
|
- spec/unit/memory_leak_spec.rb
|
|
492
|
+
- spec/unit/multiple_transitions_that_differ_only_by_guard_spec.rb
|
|
423
493
|
- spec/unit/namespaced_multiple_example_spec.rb
|
|
424
494
|
- spec/unit/new_dsl_spec.rb
|
|
425
495
|
- spec/unit/override_warning_spec.rb
|
|
@@ -427,10 +497,9 @@ test_files:
|
|
|
427
497
|
- spec/unit/persistence/active_record_persistence_spec.rb
|
|
428
498
|
- spec/unit/persistence/dynamoid_persistence_multiple_spec.rb
|
|
429
499
|
- 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
500
|
- spec/unit/persistence/mongoid_persistence_multiple_spec.rb
|
|
433
501
|
- spec/unit/persistence/mongoid_persistence_spec.rb
|
|
502
|
+
- spec/unit/persistence/redis_persistence_multiple_spec.rb
|
|
434
503
|
- spec/unit/persistence/redis_persistence_spec.rb
|
|
435
504
|
- spec/unit/persistence/sequel_persistence_multiple_spec.rb
|
|
436
505
|
- spec/unit/persistence/sequel_persistence_spec.rb
|
|
@@ -445,3 +514,5 @@ test_files:
|
|
|
445
514
|
- spec/unit/subclassing_multiple_spec.rb
|
|
446
515
|
- spec/unit/subclassing_spec.rb
|
|
447
516
|
- spec/unit/transition_spec.rb
|
|
517
|
+
- test/minitest_helper.rb
|
|
518
|
+
- test/unit/minitest_matcher_test.rb
|
|
@@ -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 '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 => "../"
|
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
module AASM
|
|
2
|
-
module Persistence
|
|
3
|
-
module MongoMapperPersistence
|
|
4
|
-
# This method:
|
|
5
|
-
#
|
|
6
|
-
# * extends the model with ClassMethods
|
|
7
|
-
# * includes InstanceMethods
|
|
8
|
-
#
|
|
9
|
-
# Adds
|
|
10
|
-
#
|
|
11
|
-
# before_validation :aasm_ensure_initial_state, :on => :create
|
|
12
|
-
#
|
|
13
|
-
# As a result, it doesn't matter when you define your methods - the following 2 are equivalent
|
|
14
|
-
#
|
|
15
|
-
# class Foo
|
|
16
|
-
# include MongoMapper::Document
|
|
17
|
-
# def aasm_write_state(state)
|
|
18
|
-
# "bar"
|
|
19
|
-
# end
|
|
20
|
-
# include AASM
|
|
21
|
-
# end
|
|
22
|
-
#
|
|
23
|
-
# class Foo < ActiveRecord::Base
|
|
24
|
-
# include MongoMapper::Document
|
|
25
|
-
# include AASM
|
|
26
|
-
# def aasm_write_state(state)
|
|
27
|
-
# "bar"
|
|
28
|
-
# end
|
|
29
|
-
# end
|
|
30
|
-
#
|
|
31
|
-
def self.included(base)
|
|
32
|
-
base.send(:include, AASM::Persistence::Base)
|
|
33
|
-
base.send(:include, AASM::Persistence::MongoMapperPersistence::InstanceMethods)
|
|
34
|
-
base.extend AASM::Persistence::MongoMapperPersistence::ClassMethods
|
|
35
|
-
|
|
36
|
-
base.before_create :aasm_ensure_initial_state
|
|
37
|
-
|
|
38
|
-
# ensure state is in the list of states
|
|
39
|
-
base.validate :aasm_validate_states
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
module ClassMethods
|
|
43
|
-
def aasm_create_scope(state_machine_name, scope_name)
|
|
44
|
-
conditions = { aasm(state_machine_name).attribute_name.to_sym => scope_name.to_s }
|
|
45
|
-
scope(scope_name, lambda { where(conditions) })
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
module InstanceMethods
|
|
50
|
-
|
|
51
|
-
# Writes <tt>state</tt> to the state column and persists it to the database
|
|
52
|
-
#
|
|
53
|
-
# foo = Foo.find(1)
|
|
54
|
-
# foo.aasm.current_state # => :opened
|
|
55
|
-
# foo.close!
|
|
56
|
-
# foo.aasm.current_state # => :closed
|
|
57
|
-
# Foo.find(1).aasm.current_state # => :closed
|
|
58
|
-
#
|
|
59
|
-
# NOTE: intended to be called from an event
|
|
60
|
-
def aasm_write_state(state, name=:default)
|
|
61
|
-
old_value = read_attribute(self.class.aasm(name).attribute_name)
|
|
62
|
-
write_attribute(self.class.aasm(name).attribute_name, state)
|
|
63
|
-
|
|
64
|
-
success = if aasm_skipping_validations(name)
|
|
65
|
-
value = aasm_raw_attribute_value(state, name)
|
|
66
|
-
self.class.where(self.class.primary_key => self.id).update_all(self.class.aasm(name).attribute_name => value) == 1
|
|
67
|
-
else
|
|
68
|
-
self.save
|
|
69
|
-
end
|
|
70
|
-
unless success
|
|
71
|
-
write_attribute(self.class.aasm(name).attribute_name, old_value)
|
|
72
|
-
return false
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
true
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
# Writes <tt>state</tt> to the state column, but does not persist it to the database
|
|
79
|
-
#
|
|
80
|
-
# foo = Foo.find(1)
|
|
81
|
-
# foo.aasm.current_state # => :opened
|
|
82
|
-
# foo.close
|
|
83
|
-
# foo.aasm.current_state # => :closed
|
|
84
|
-
# Foo.find(1).aasm.current_state # => :opened
|
|
85
|
-
# foo.save
|
|
86
|
-
# foo.aasm.current_state # => :closed
|
|
87
|
-
# Foo.find(1).aasm.current_state # => :closed
|
|
88
|
-
#
|
|
89
|
-
# NOTE: intended to be called from an event
|
|
90
|
-
def aasm_write_state_without_persistence(state, name=:default)
|
|
91
|
-
aasm_write_attribute(state, name)
|
|
92
|
-
end
|
|
93
|
-
|
|
94
|
-
private
|
|
95
|
-
def aasm_enum(name=:default)
|
|
96
|
-
case AASM::StateMachineStore.fetch(self.class, true).machine(name).config.enum
|
|
97
|
-
when false then nil
|
|
98
|
-
when true then aasm_guess_enum_method(name)
|
|
99
|
-
when nil then aasm_guess_enum_method(name) if aasm_column_looks_like_enum(name)
|
|
100
|
-
else AASM::StateMachineStore.fetch(self.class, true).machine(name).config.enum
|
|
101
|
-
end
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
def aasm_column_looks_like_enum(name)
|
|
105
|
-
self.class.keys[self.class.aasm(name).attribute_name.to_s].type == Integer
|
|
106
|
-
end
|
|
107
|
-
|
|
108
|
-
def aasm_guess_enum_method(name)
|
|
109
|
-
self.class.aasm(name).attribute_name.to_s.pluralize.to_sym
|
|
110
|
-
end
|
|
111
|
-
|
|
112
|
-
def aasm_skipping_validations(state_machine_name)
|
|
113
|
-
AASM::StateMachineStore.fetch(self.class, true).machine(state_machine_name).config.skip_validation_on_save
|
|
114
|
-
end
|
|
115
|
-
|
|
116
|
-
def aasm_write_attribute(state, name=:default)
|
|
117
|
-
write_attribute self.class.aasm(name).attribute_name, aasm_raw_attribute_value(state, name)
|
|
118
|
-
end
|
|
119
|
-
|
|
120
|
-
def aasm_raw_attribute_value(state, name=:default)
|
|
121
|
-
if aasm_enum(name)
|
|
122
|
-
self.class.send(aasm_enum(name))[state]
|
|
123
|
-
else
|
|
124
|
-
state.to_s
|
|
125
|
-
end
|
|
126
|
-
end
|
|
127
|
-
|
|
128
|
-
# Ensures that if the aasm_state column is nil and the record is new
|
|
129
|
-
# that the initial state gets populated before validation on create
|
|
130
|
-
#
|
|
131
|
-
# foo = Foo.new
|
|
132
|
-
# foo.aasm_state # => nil
|
|
133
|
-
# foo.valid?
|
|
134
|
-
# foo.aasm_state # => "open" (where :open is the initial state)
|
|
135
|
-
#
|
|
136
|
-
#
|
|
137
|
-
# foo = Foo.find(:first)
|
|
138
|
-
# foo.aasm_state # => 1
|
|
139
|
-
# foo.aasm_state = nil
|
|
140
|
-
# foo.valid?
|
|
141
|
-
# foo.aasm_state # => nil
|
|
142
|
-
#
|
|
143
|
-
def aasm_ensure_initial_state
|
|
144
|
-
AASM::StateMachineStore.fetch(self.class, true).machine_names.each do |state_machine_name|
|
|
145
|
-
send("#{self.class.aasm(state_machine_name).attribute_name}=", aasm(state_machine_name).enter_initial_state.to_s) if send(self.class.aasm(state_machine_name).attribute_name).blank?
|
|
146
|
-
end
|
|
147
|
-
end
|
|
148
|
-
|
|
149
|
-
def aasm_validate_states
|
|
150
|
-
AASM::StateMachineStore.fetch(self.class, true).machine_names.each do |state_machine_name|
|
|
151
|
-
send("#{self.class.aasm(state_machine_name).attribute_name}=", aasm(state_machine_name).enter_initial_state.to_s) if send(self.class.aasm(state_machine_name).attribute_name).blank?
|
|
152
|
-
unless AASM::StateMachineStore.fetch(self.class, true).machine(state_machine_name).config.skip_validation_on_save
|
|
153
|
-
if aasm(state_machine_name).current_state && !aasm(state_machine_name).states.include?(aasm(state_machine_name).current_state)
|
|
154
|
-
self.errors.add(AASM::StateMachineStore.fetch(self.class, true).machine(state_machine_name).config.column , "is invalid")
|
|
155
|
-
end
|
|
156
|
-
end
|
|
157
|
-
end
|
|
158
|
-
end
|
|
159
|
-
end # InstanceMethods
|
|
160
|
-
|
|
161
|
-
end
|
|
162
|
-
end # Persistence
|
|
163
|
-
end # AASM
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
class NoScopeMongoMapper
|
|
2
|
-
include MongoMapper::Document
|
|
3
|
-
include AASM
|
|
4
|
-
|
|
5
|
-
key :status, String
|
|
6
|
-
|
|
7
|
-
aasm :create_scopes => false, :column => :status do
|
|
8
|
-
state :ignored_scope
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
class NoScopeMongoMapperMultiple
|
|
13
|
-
include MongoMapper::Document
|
|
14
|
-
include AASM
|
|
15
|
-
|
|
16
|
-
key :status, String
|
|
17
|
-
|
|
18
|
-
aasm :left, :create_scopes => false, :column => :status do
|
|
19
|
-
state :ignored_scope
|
|
20
|
-
end
|
|
21
|
-
end
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
class SimpleMongoMapper
|
|
2
|
-
include MongoMapper::Document
|
|
3
|
-
include AASM
|
|
4
|
-
|
|
5
|
-
key :status, String
|
|
6
|
-
|
|
7
|
-
aasm column: :status do
|
|
8
|
-
state :unknown_scope, :another_unknown_scope
|
|
9
|
-
state :next
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
class SimpleMongoMapperMultiple
|
|
14
|
-
include MongoMapper::Document
|
|
15
|
-
include AASM
|
|
16
|
-
|
|
17
|
-
key :status, String
|
|
18
|
-
|
|
19
|
-
aasm :left, column: :status do
|
|
20
|
-
state :unknown_scope, :another_unknown_scope
|
|
21
|
-
state :next
|
|
22
|
-
end
|
|
23
|
-
end
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
class SimpleNewDslMongoMapper
|
|
2
|
-
include MongoMapper::Document
|
|
3
|
-
include AASM
|
|
4
|
-
|
|
5
|
-
key :status, String
|
|
6
|
-
|
|
7
|
-
aasm :column => :status
|
|
8
|
-
aasm do
|
|
9
|
-
state :unknown_scope
|
|
10
|
-
state :next
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
class SimpleNewDslMongoMapperMultiple
|
|
15
|
-
include MongoMapper::Document
|
|
16
|
-
include AASM
|
|
17
|
-
|
|
18
|
-
key :status, String
|
|
19
|
-
|
|
20
|
-
aasm :left, :column => :status
|
|
21
|
-
aasm :left do
|
|
22
|
-
state :unknown_scope
|
|
23
|
-
state :next
|
|
24
|
-
end
|
|
25
|
-
end
|