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.
Files changed (113) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +19 -16
  3. data/Appraisals +46 -0
  4. data/CHANGELOG.md +19 -0
  5. data/CONTRIBUTING.md +24 -0
  6. data/Gemfile +4 -21
  7. data/README.md +154 -39
  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 +10 -9
  14. data/gemfiles/rails_4.2_mongoid_5.gemfile +5 -9
  15. data/gemfiles/rails_5.0.gemfile +8 -16
  16. data/lib/aasm/aasm.rb +9 -3
  17. data/lib/aasm/base.rb +11 -1
  18. data/lib/aasm/configuration.rb +4 -0
  19. data/lib/aasm/core/event.rb +18 -4
  20. data/lib/aasm/core/state.rb +7 -0
  21. data/lib/aasm/core/transition.rb +10 -1
  22. data/lib/aasm/instance_base.rb +0 -2
  23. data/lib/aasm/minitest/allow_event.rb +13 -0
  24. data/lib/aasm/minitest/allow_transition_to.rb +13 -0
  25. data/lib/aasm/minitest/have_state.rb +13 -0
  26. data/lib/aasm/minitest/transition_from.rb +21 -0
  27. data/lib/aasm/minitest.rb +5 -0
  28. data/lib/aasm/minitest_spec.rb +15 -0
  29. data/lib/aasm/persistence/active_record_persistence.rb +25 -101
  30. data/lib/aasm/persistence/base.rb +7 -3
  31. data/lib/aasm/persistence/mongoid_persistence.rb +25 -31
  32. data/lib/aasm/persistence/orm.rb +142 -0
  33. data/lib/aasm/persistence/redis_persistence.rb +16 -11
  34. data/lib/aasm/persistence/sequel_persistence.rb +36 -63
  35. data/lib/aasm/persistence.rb +0 -3
  36. data/lib/aasm/state_machine.rb +4 -2
  37. data/lib/aasm/state_machine_store.rb +5 -2
  38. data/lib/aasm/version.rb +1 -1
  39. data/lib/generators/active_record/templates/migration.rb +1 -1
  40. data/lib/generators/active_record/templates/migration_existing.rb +1 -1
  41. data/lib/motion-aasm.rb +2 -1
  42. data/spec/generators/active_record_generator_spec.rb +42 -39
  43. data/spec/generators/mongoid_generator_spec.rb +4 -6
  44. data/spec/models/active_record/complex_active_record_example.rb +5 -1
  45. data/spec/models/{invalid_persistor.rb → active_record/invalid_persistor.rb} +0 -2
  46. data/spec/models/{silent_persistor.rb → active_record/silent_persistor.rb} +0 -2
  47. data/spec/models/{transactor.rb → active_record/transactor.rb} +0 -2
  48. data/spec/models/{validator.rb → active_record/validator.rb} +0 -2
  49. data/spec/models/callbacks/basic.rb +5 -2
  50. data/spec/models/guard_with_params.rb +1 -1
  51. data/spec/models/guardian_without_from_specified.rb +18 -0
  52. data/spec/models/mongoid/invalid_persistor_mongoid.rb +39 -0
  53. data/spec/models/mongoid/silent_persistor_mongoid.rb +39 -0
  54. data/spec/models/mongoid/validator_mongoid.rb +100 -0
  55. data/spec/models/multiple_transitions_that_differ_only_by_guard.rb +31 -0
  56. data/spec/models/namespaced_multiple_example.rb +14 -0
  57. data/spec/models/parametrised_event.rb +7 -0
  58. data/spec/models/{mongo_mapper/complex_mongo_mapper_example.rb → redis/complex_redis_example.rb} +8 -5
  59. data/spec/models/redis/redis_multiple.rb +20 -0
  60. data/spec/models/redis/redis_simple.rb +20 -0
  61. data/spec/models/sequel/complex_sequel_example.rb +4 -3
  62. data/spec/models/sequel/invalid_persistor.rb +52 -0
  63. data/spec/models/sequel/sequel_multiple.rb +13 -13
  64. data/spec/models/sequel/sequel_simple.rb +13 -12
  65. data/spec/models/sequel/silent_persistor.rb +50 -0
  66. data/spec/models/sequel/transactor.rb +112 -0
  67. data/spec/models/sequel/validator.rb +93 -0
  68. data/spec/models/sequel/worker.rb +12 -0
  69. data/spec/models/simple_multiple_example.rb +12 -0
  70. data/spec/models/sub_class.rb +34 -0
  71. data/spec/spec_helper.rb +0 -33
  72. data/spec/spec_helpers/active_record.rb +7 -0
  73. data/spec/spec_helpers/dynamoid.rb +33 -0
  74. data/spec/spec_helpers/mongoid.rb +7 -0
  75. data/spec/spec_helpers/redis.rb +15 -0
  76. data/spec/spec_helpers/remove_warnings.rb +1 -0
  77. data/spec/spec_helpers/sequel.rb +7 -0
  78. data/spec/unit/api_spec.rb +76 -73
  79. data/spec/unit/callbacks_spec.rb +5 -0
  80. data/spec/unit/event_spec.rb +12 -0
  81. data/spec/unit/guard_spec.rb +17 -0
  82. data/spec/unit/guard_with_params_spec.rb +4 -0
  83. data/spec/unit/guard_without_from_specified_spec.rb +10 -0
  84. data/spec/unit/localizer_spec.rb +55 -53
  85. data/spec/unit/multiple_transitions_that_differ_only_by_guard_spec.rb +14 -0
  86. data/spec/unit/namespaced_multiple_example_spec.rb +22 -0
  87. data/spec/unit/override_warning_spec.rb +8 -0
  88. data/spec/unit/persistence/active_record_persistence_multiple_spec.rb +453 -449
  89. data/spec/unit/persistence/active_record_persistence_spec.rb +524 -502
  90. data/spec/unit/persistence/dynamoid_persistence_multiple_spec.rb +4 -9
  91. data/spec/unit/persistence/dynamoid_persistence_spec.rb +4 -9
  92. data/spec/unit/persistence/mongoid_persistence_multiple_spec.rb +83 -9
  93. data/spec/unit/persistence/mongoid_persistence_spec.rb +85 -9
  94. data/spec/unit/persistence/redis_persistence_multiple_spec.rb +88 -0
  95. data/spec/unit/persistence/redis_persistence_spec.rb +8 -32
  96. data/spec/unit/persistence/sequel_persistence_multiple_spec.rb +6 -11
  97. data/spec/unit/persistence/sequel_persistence_spec.rb +278 -10
  98. data/spec/unit/simple_multiple_example_spec.rb +28 -0
  99. data/spec/unit/subclassing_multiple_spec.rb +37 -2
  100. data/spec/unit/subclassing_spec.rb +17 -2
  101. data/test/minitest_helper.rb +57 -0
  102. data/test/unit/minitest_matcher_test.rb +80 -0
  103. metadata +99 -28
  104. data/gemfiles/rails_3.2_stable.gemfile +0 -15
  105. data/gemfiles/rails_4.0_mongo_mapper.gemfile +0 -16
  106. data/gemfiles/rails_4.2_mongo_mapper.gemfile +0 -17
  107. data/lib/aasm/persistence/mongo_mapper_persistence.rb +0 -163
  108. data/spec/models/mongo_mapper/no_scope_mongo_mapper.rb +0 -21
  109. data/spec/models/mongo_mapper/simple_mongo_mapper.rb +0 -23
  110. data/spec/models/mongo_mapper/simple_new_dsl_mongo_mapper.rb +0 -25
  111. data/spec/unit/persistence/mongo_mapper_persistence_multiple_spec.rb +0 -149
  112. data/spec/unit/persistence/mongo_mapper_persistence_spec.rb +0 -96
  113. /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.11.1
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: 2016-09-21 00:00:00.000000000 Z
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.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
@@ -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