aasm 4.11.0 → 4.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +16 -17
- data/Appraisals +44 -0
- data/CHANGELOG.md +24 -1
- data/CONTRIBUTING.md +24 -0
- data/Gemfile +4 -21
- data/README.md +81 -34
- data/Rakefile +6 -1
- data/TESTING.md +25 -0
- data/aasm.gemspec +5 -2
- data/gemfiles/rails_3.2.gemfile +13 -0
- data/gemfiles/rails_4.0.gemfile +8 -9
- data/gemfiles/rails_4.2.gemfile +9 -9
- data/gemfiles/rails_4.2_mongoid_5.gemfile +5 -9
- data/gemfiles/rails_5.0.gemfile +7 -16
- data/lib/aasm/aasm.rb +9 -3
- data/lib/aasm/base.rb +3 -1
- data/lib/aasm/configuration.rb +4 -0
- data/lib/aasm/core/event.rb +19 -9
- data/lib/aasm/core/state.rb +7 -0
- data/lib/aasm/core/transition.rb +9 -0
- data/lib/aasm/instance_base.rb +8 -8
- data/lib/aasm/persistence/active_record_persistence.rb +1 -1
- data/lib/aasm/persistence/base.rb +3 -3
- data/lib/aasm/persistence/mongoid_persistence.rb +48 -9
- 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/aasm_generator.rb +1 -1
- data/lib/motion-aasm.rb +0 -1
- data/spec/en.yml +3 -0
- data/spec/generators/active_record_generator_spec.rb +42 -34
- data/spec/generators/mongoid_generator_spec.rb +4 -6
- 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/active_record/simple_new_dsl.rb +2 -2
- data/spec/models/{transactor.rb → active_record/transactor.rb} +0 -2
- data/spec/models/{validator.rb → active_record/validator.rb} +6 -3
- data/spec/models/callbacks/basic.rb +5 -2
- data/spec/models/guard_with_params.rb +24 -0
- data/spec/models/guard_with_params_multiple.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/simple_mongoid.rb +2 -2
- data/spec/models/mongoid/validator_mongoid.rb +100 -0
- data/spec/models/multi_transitioner.rb +10 -0
- data/spec/models/multiple_transitions_that_differ_only_by_guard.rb +31 -0
- data/spec/models/parametrised_event.rb +7 -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 +7 -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_with_params_multiple_spec.rb +10 -0
- data/spec/unit/guard_with_params_spec.rb +14 -0
- data/spec/unit/inspection_spec.rb +5 -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/override_warning_spec.rb +8 -0
- data/spec/unit/persistence/active_record_persistence_multiple_spec.rb +452 -445
- data/spec/unit/persistence/active_record_persistence_spec.rb +523 -490
- 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 +87 -10
- data/spec/unit/persistence/mongoid_persistence_spec.rb +89 -10
- data/spec/unit/persistence/redis_persistence_spec.rb +3 -7
- data/spec/unit/persistence/sequel_persistence_multiple_spec.rb +4 -9
- data/spec/unit/persistence/sequel_persistence_spec.rb +4 -9
- 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
- metadata +77 -32
- data/gemfiles/rails_3.2_stable.gemfile +0 -15
- data/gemfiles/rails_4.0_mongo_mapper.gemfile +0 -17
- data/gemfiles/rails_4.2_mongo_mapper.gemfile +0 -18
- data/lib/aasm/persistence/mongo_mapper_persistence.rb +0 -163
- data/spec/models/mongo_mapper/complex_mongo_mapper_example.rb +0 -37
- 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 -146
- data/spec/unit/persistence/mongo_mapper_persistence_spec.rb +0 -93
- /data/spec/models/{worker.rb → active_record/worker.rb} +0 -0
metadata
CHANGED
|
@@ -1,17 +1,30 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: aasm
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.
|
|
4
|
+
version: 4.12.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
|
-
- Scott Barron
|
|
8
|
-
- Travis Tilley
|
|
9
7
|
- Thorsten Boettger
|
|
8
|
+
- Anil Maurya
|
|
10
9
|
autorequire:
|
|
11
10
|
bindir: bin
|
|
12
11
|
cert_chain: []
|
|
13
|
-
date:
|
|
12
|
+
date: 2017-03-21 00:00:00.000000000 Z
|
|
14
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'
|
|
15
28
|
- !ruby/object:Gem::Dependency
|
|
16
29
|
name: rake
|
|
17
30
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -68,6 +81,20 @@ dependencies:
|
|
|
68
81
|
- - ">="
|
|
69
82
|
- !ruby/object:Gem::Version
|
|
70
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'
|
|
71
98
|
- !ruby/object:Gem::Dependency
|
|
72
99
|
name: pry
|
|
73
100
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -84,7 +111,7 @@ dependencies:
|
|
|
84
111
|
version: '0'
|
|
85
112
|
description: AASM is a continuation of the acts-as-state-machine rails plugin, built
|
|
86
113
|
for plain Ruby objects.
|
|
87
|
-
email:
|
|
114
|
+
email: aasm@mt7.de, anilmaurya8dec@gmail.com
|
|
88
115
|
executables: []
|
|
89
116
|
extensions: []
|
|
90
117
|
extra_rdoc_files: []
|
|
@@ -93,8 +120,10 @@ files:
|
|
|
93
120
|
- ".gitignore"
|
|
94
121
|
- ".travis.yml"
|
|
95
122
|
- API
|
|
123
|
+
- Appraisals
|
|
96
124
|
- CHANGELOG.md
|
|
97
125
|
- CODE_OF_CONDUCT.md
|
|
126
|
+
- CONTRIBUTING.md
|
|
98
127
|
- Gemfile
|
|
99
128
|
- HOWTO
|
|
100
129
|
- LICENSE
|
|
@@ -102,13 +131,12 @@ files:
|
|
|
102
131
|
- README.md
|
|
103
132
|
- README_FROM_VERSION_3_TO_4.md
|
|
104
133
|
- Rakefile
|
|
134
|
+
- TESTING.md
|
|
105
135
|
- aasm.gemspec
|
|
106
136
|
- callbacks.txt
|
|
107
|
-
- gemfiles/rails_3.
|
|
137
|
+
- gemfiles/rails_3.2.gemfile
|
|
108
138
|
- gemfiles/rails_4.0.gemfile
|
|
109
|
-
- gemfiles/rails_4.0_mongo_mapper.gemfile
|
|
110
139
|
- gemfiles/rails_4.2.gemfile
|
|
111
|
-
- gemfiles/rails_4.2_mongo_mapper.gemfile
|
|
112
140
|
- gemfiles/rails_4.2_mongoid_5.gemfile
|
|
113
141
|
- gemfiles/rails_5.0.gemfile
|
|
114
142
|
- lib/aasm.rb
|
|
@@ -127,7 +155,6 @@ files:
|
|
|
127
155
|
- lib/aasm/persistence/base.rb
|
|
128
156
|
- lib/aasm/persistence/core_data_query_persistence.rb
|
|
129
157
|
- lib/aasm/persistence/dynamoid_persistence.rb
|
|
130
|
-
- lib/aasm/persistence/mongo_mapper_persistence.rb
|
|
131
158
|
- lib/aasm/persistence/mongoid_persistence.rb
|
|
132
159
|
- lib/aasm/persistence/plain_persistence.rb
|
|
133
160
|
- lib/aasm/persistence/redis_persistence.rb
|
|
@@ -158,6 +185,7 @@ files:
|
|
|
158
185
|
- spec/models/active_record/derivate_new_dsl.rb
|
|
159
186
|
- spec/models/active_record/false_state.rb
|
|
160
187
|
- spec/models/active_record/gate.rb
|
|
188
|
+
- spec/models/active_record/invalid_persistor.rb
|
|
161
189
|
- spec/models/active_record/localizer_test_model.rb
|
|
162
190
|
- spec/models/active_record/no_direct_assignment.rb
|
|
163
191
|
- spec/models/active_record/no_scope.rb
|
|
@@ -165,13 +193,17 @@ files:
|
|
|
165
193
|
- spec/models/active_record/provided_and_persisted_state.rb
|
|
166
194
|
- spec/models/active_record/reader.rb
|
|
167
195
|
- spec/models/active_record/readme_job.rb
|
|
196
|
+
- spec/models/active_record/silent_persistor.rb
|
|
168
197
|
- spec/models/active_record/simple_new_dsl.rb
|
|
169
198
|
- spec/models/active_record/thief.rb
|
|
199
|
+
- spec/models/active_record/transactor.rb
|
|
170
200
|
- spec/models/active_record/transient.rb
|
|
201
|
+
- spec/models/active_record/validator.rb
|
|
171
202
|
- spec/models/active_record/with_enum.rb
|
|
172
203
|
- spec/models/active_record/with_enum_without_column.rb
|
|
173
204
|
- spec/models/active_record/with_false_enum.rb
|
|
174
205
|
- spec/models/active_record/with_true_enum.rb
|
|
206
|
+
- spec/models/active_record/worker.rb
|
|
175
207
|
- spec/models/active_record/writer.rb
|
|
176
208
|
- spec/models/basic_two_state_machines_example.rb
|
|
177
209
|
- spec/models/callbacks/basic.rb
|
|
@@ -195,20 +227,21 @@ files:
|
|
|
195
227
|
- spec/models/dynamoid/dynamoid_simple.rb
|
|
196
228
|
- spec/models/foo.rb
|
|
197
229
|
- spec/models/foo_callback_multiple.rb
|
|
230
|
+
- spec/models/guard_with_params.rb
|
|
231
|
+
- spec/models/guard_with_params_multiple.rb
|
|
198
232
|
- spec/models/guardian.rb
|
|
199
233
|
- spec/models/guardian_multiple.rb
|
|
200
234
|
- spec/models/initial_state_proc.rb
|
|
201
|
-
- spec/models/invalid_persistor.rb
|
|
202
|
-
- spec/models/mongo_mapper/complex_mongo_mapper_example.rb
|
|
203
|
-
- spec/models/mongo_mapper/no_scope_mongo_mapper.rb
|
|
204
|
-
- spec/models/mongo_mapper/simple_mongo_mapper.rb
|
|
205
|
-
- spec/models/mongo_mapper/simple_new_dsl_mongo_mapper.rb
|
|
206
235
|
- spec/models/mongoid/complex_mongoid_example.rb
|
|
236
|
+
- spec/models/mongoid/invalid_persistor_mongoid.rb
|
|
207
237
|
- spec/models/mongoid/mongoid_relationships.rb
|
|
208
238
|
- spec/models/mongoid/no_scope_mongoid.rb
|
|
239
|
+
- spec/models/mongoid/silent_persistor_mongoid.rb
|
|
209
240
|
- spec/models/mongoid/simple_mongoid.rb
|
|
210
241
|
- spec/models/mongoid/simple_new_dsl_mongoid.rb
|
|
242
|
+
- spec/models/mongoid/validator_mongoid.rb
|
|
211
243
|
- spec/models/multi_transitioner.rb
|
|
244
|
+
- spec/models/multiple_transitions_that_differ_only_by_guard.rb
|
|
212
245
|
- spec/models/namespaced_multiple_example.rb
|
|
213
246
|
- spec/models/no_initial_state.rb
|
|
214
247
|
- spec/models/not_auto_loaded/process.rb
|
|
@@ -220,7 +253,6 @@ files:
|
|
|
220
253
|
- spec/models/sequel/sequel_multiple.rb
|
|
221
254
|
- spec/models/sequel/sequel_simple.rb
|
|
222
255
|
- spec/models/silencer.rb
|
|
223
|
-
- spec/models/silent_persistor.rb
|
|
224
256
|
- spec/models/simple_custom_example.rb
|
|
225
257
|
- spec/models/simple_example.rb
|
|
226
258
|
- spec/models/simple_multiple_example.rb
|
|
@@ -231,11 +263,14 @@ files:
|
|
|
231
263
|
- spec/models/sub_classing.rb
|
|
232
264
|
- spec/models/super_class.rb
|
|
233
265
|
- spec/models/this_name_better_not_be_in_use.rb
|
|
234
|
-
- spec/models/transactor.rb
|
|
235
266
|
- spec/models/valid_state_name.rb
|
|
236
|
-
- spec/models/validator.rb
|
|
237
|
-
- spec/models/worker.rb
|
|
238
267
|
- spec/spec_helper.rb
|
|
268
|
+
- spec/spec_helpers/active_record.rb
|
|
269
|
+
- spec/spec_helpers/dynamoid.rb
|
|
270
|
+
- spec/spec_helpers/mongoid.rb
|
|
271
|
+
- spec/spec_helpers/redis.rb
|
|
272
|
+
- spec/spec_helpers/remove_warnings.rb
|
|
273
|
+
- spec/spec_helpers/sequel.rb
|
|
239
274
|
- spec/unit/api_spec.rb
|
|
240
275
|
- spec/unit/basic_two_state_machines_example_spec.rb
|
|
241
276
|
- spec/unit/callback_multiple_spec.rb
|
|
@@ -249,12 +284,15 @@ files:
|
|
|
249
284
|
- spec/unit/exception_spec.rb
|
|
250
285
|
- spec/unit/guard_multiple_spec.rb
|
|
251
286
|
- spec/unit/guard_spec.rb
|
|
287
|
+
- spec/unit/guard_with_params_multiple_spec.rb
|
|
288
|
+
- spec/unit/guard_with_params_spec.rb
|
|
252
289
|
- spec/unit/initial_state_multiple_spec.rb
|
|
253
290
|
- spec/unit/initial_state_spec.rb
|
|
254
291
|
- spec/unit/inspection_multiple_spec.rb
|
|
255
292
|
- spec/unit/inspection_spec.rb
|
|
256
293
|
- spec/unit/localizer_spec.rb
|
|
257
294
|
- spec/unit/memory_leak_spec.rb
|
|
295
|
+
- spec/unit/multiple_transitions_that_differ_only_by_guard_spec.rb
|
|
258
296
|
- spec/unit/namespaced_multiple_example_spec.rb
|
|
259
297
|
- spec/unit/new_dsl_spec.rb
|
|
260
298
|
- spec/unit/override_warning_spec.rb
|
|
@@ -262,8 +300,6 @@ files:
|
|
|
262
300
|
- spec/unit/persistence/active_record_persistence_spec.rb
|
|
263
301
|
- spec/unit/persistence/dynamoid_persistence_multiple_spec.rb
|
|
264
302
|
- spec/unit/persistence/dynamoid_persistence_spec.rb
|
|
265
|
-
- spec/unit/persistence/mongo_mapper_persistence_multiple_spec.rb
|
|
266
|
-
- spec/unit/persistence/mongo_mapper_persistence_spec.rb
|
|
267
303
|
- spec/unit/persistence/mongoid_persistence_multiple_spec.rb
|
|
268
304
|
- spec/unit/persistence/mongoid_persistence_spec.rb
|
|
269
305
|
- spec/unit/persistence/redis_persistence_spec.rb
|
|
@@ -300,7 +336,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
300
336
|
version: '0'
|
|
301
337
|
requirements: []
|
|
302
338
|
rubyforge_project:
|
|
303
|
-
rubygems_version: 2.
|
|
339
|
+
rubygems_version: 2.5.1
|
|
304
340
|
signing_key:
|
|
305
341
|
specification_version: 4
|
|
306
342
|
summary: State machine mixin for Ruby objects
|
|
@@ -316,6 +352,7 @@ test_files:
|
|
|
316
352
|
- spec/models/active_record/derivate_new_dsl.rb
|
|
317
353
|
- spec/models/active_record/false_state.rb
|
|
318
354
|
- spec/models/active_record/gate.rb
|
|
355
|
+
- spec/models/active_record/invalid_persistor.rb
|
|
319
356
|
- spec/models/active_record/localizer_test_model.rb
|
|
320
357
|
- spec/models/active_record/no_direct_assignment.rb
|
|
321
358
|
- spec/models/active_record/no_scope.rb
|
|
@@ -323,13 +360,17 @@ test_files:
|
|
|
323
360
|
- spec/models/active_record/provided_and_persisted_state.rb
|
|
324
361
|
- spec/models/active_record/reader.rb
|
|
325
362
|
- spec/models/active_record/readme_job.rb
|
|
363
|
+
- spec/models/active_record/silent_persistor.rb
|
|
326
364
|
- spec/models/active_record/simple_new_dsl.rb
|
|
327
365
|
- spec/models/active_record/thief.rb
|
|
366
|
+
- spec/models/active_record/transactor.rb
|
|
328
367
|
- spec/models/active_record/transient.rb
|
|
368
|
+
- spec/models/active_record/validator.rb
|
|
329
369
|
- spec/models/active_record/with_enum.rb
|
|
330
370
|
- spec/models/active_record/with_enum_without_column.rb
|
|
331
371
|
- spec/models/active_record/with_false_enum.rb
|
|
332
372
|
- spec/models/active_record/with_true_enum.rb
|
|
373
|
+
- spec/models/active_record/worker.rb
|
|
333
374
|
- spec/models/active_record/writer.rb
|
|
334
375
|
- spec/models/basic_two_state_machines_example.rb
|
|
335
376
|
- spec/models/callbacks/basic.rb
|
|
@@ -353,20 +394,21 @@ test_files:
|
|
|
353
394
|
- spec/models/dynamoid/dynamoid_simple.rb
|
|
354
395
|
- spec/models/foo.rb
|
|
355
396
|
- spec/models/foo_callback_multiple.rb
|
|
397
|
+
- spec/models/guard_with_params.rb
|
|
398
|
+
- spec/models/guard_with_params_multiple.rb
|
|
356
399
|
- spec/models/guardian.rb
|
|
357
400
|
- spec/models/guardian_multiple.rb
|
|
358
401
|
- spec/models/initial_state_proc.rb
|
|
359
|
-
- spec/models/invalid_persistor.rb
|
|
360
|
-
- spec/models/mongo_mapper/complex_mongo_mapper_example.rb
|
|
361
|
-
- spec/models/mongo_mapper/no_scope_mongo_mapper.rb
|
|
362
|
-
- spec/models/mongo_mapper/simple_mongo_mapper.rb
|
|
363
|
-
- spec/models/mongo_mapper/simple_new_dsl_mongo_mapper.rb
|
|
364
402
|
- spec/models/mongoid/complex_mongoid_example.rb
|
|
403
|
+
- spec/models/mongoid/invalid_persistor_mongoid.rb
|
|
365
404
|
- spec/models/mongoid/mongoid_relationships.rb
|
|
366
405
|
- spec/models/mongoid/no_scope_mongoid.rb
|
|
406
|
+
- spec/models/mongoid/silent_persistor_mongoid.rb
|
|
367
407
|
- spec/models/mongoid/simple_mongoid.rb
|
|
368
408
|
- spec/models/mongoid/simple_new_dsl_mongoid.rb
|
|
409
|
+
- spec/models/mongoid/validator_mongoid.rb
|
|
369
410
|
- spec/models/multi_transitioner.rb
|
|
411
|
+
- spec/models/multiple_transitions_that_differ_only_by_guard.rb
|
|
370
412
|
- spec/models/namespaced_multiple_example.rb
|
|
371
413
|
- spec/models/no_initial_state.rb
|
|
372
414
|
- spec/models/not_auto_loaded/process.rb
|
|
@@ -378,7 +420,6 @@ test_files:
|
|
|
378
420
|
- spec/models/sequel/sequel_multiple.rb
|
|
379
421
|
- spec/models/sequel/sequel_simple.rb
|
|
380
422
|
- spec/models/silencer.rb
|
|
381
|
-
- spec/models/silent_persistor.rb
|
|
382
423
|
- spec/models/simple_custom_example.rb
|
|
383
424
|
- spec/models/simple_example.rb
|
|
384
425
|
- spec/models/simple_multiple_example.rb
|
|
@@ -389,11 +430,14 @@ test_files:
|
|
|
389
430
|
- spec/models/sub_classing.rb
|
|
390
431
|
- spec/models/super_class.rb
|
|
391
432
|
- spec/models/this_name_better_not_be_in_use.rb
|
|
392
|
-
- spec/models/transactor.rb
|
|
393
433
|
- spec/models/valid_state_name.rb
|
|
394
|
-
- spec/models/validator.rb
|
|
395
|
-
- spec/models/worker.rb
|
|
396
434
|
- spec/spec_helper.rb
|
|
435
|
+
- spec/spec_helpers/active_record.rb
|
|
436
|
+
- spec/spec_helpers/dynamoid.rb
|
|
437
|
+
- spec/spec_helpers/mongoid.rb
|
|
438
|
+
- spec/spec_helpers/redis.rb
|
|
439
|
+
- spec/spec_helpers/remove_warnings.rb
|
|
440
|
+
- spec/spec_helpers/sequel.rb
|
|
397
441
|
- spec/unit/api_spec.rb
|
|
398
442
|
- spec/unit/basic_two_state_machines_example_spec.rb
|
|
399
443
|
- spec/unit/callback_multiple_spec.rb
|
|
@@ -407,12 +451,15 @@ test_files:
|
|
|
407
451
|
- spec/unit/exception_spec.rb
|
|
408
452
|
- spec/unit/guard_multiple_spec.rb
|
|
409
453
|
- spec/unit/guard_spec.rb
|
|
454
|
+
- spec/unit/guard_with_params_multiple_spec.rb
|
|
455
|
+
- spec/unit/guard_with_params_spec.rb
|
|
410
456
|
- spec/unit/initial_state_multiple_spec.rb
|
|
411
457
|
- spec/unit/initial_state_spec.rb
|
|
412
458
|
- spec/unit/inspection_multiple_spec.rb
|
|
413
459
|
- spec/unit/inspection_spec.rb
|
|
414
460
|
- spec/unit/localizer_spec.rb
|
|
415
461
|
- spec/unit/memory_leak_spec.rb
|
|
462
|
+
- spec/unit/multiple_transitions_that_differ_only_by_guard_spec.rb
|
|
416
463
|
- spec/unit/namespaced_multiple_example_spec.rb
|
|
417
464
|
- spec/unit/new_dsl_spec.rb
|
|
418
465
|
- spec/unit/override_warning_spec.rb
|
|
@@ -420,8 +467,6 @@ test_files:
|
|
|
420
467
|
- spec/unit/persistence/active_record_persistence_spec.rb
|
|
421
468
|
- spec/unit/persistence/dynamoid_persistence_multiple_spec.rb
|
|
422
469
|
- spec/unit/persistence/dynamoid_persistence_spec.rb
|
|
423
|
-
- spec/unit/persistence/mongo_mapper_persistence_multiple_spec.rb
|
|
424
|
-
- spec/unit/persistence/mongo_mapper_persistence_spec.rb
|
|
425
470
|
- spec/unit/persistence/mongoid_persistence_multiple_spec.rb
|
|
426
471
|
- spec/unit/persistence/mongoid_persistence_spec.rb
|
|
427
472
|
- spec/unit/persistence/redis_persistence_spec.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,17 +0,0 @@
|
|
|
1
|
-
source "https://rubygems.org"
|
|
2
|
-
|
|
3
|
-
gem "sqlite3", :platforms => :ruby
|
|
4
|
-
gem "coveralls"
|
|
5
|
-
gem 'rubysl', :platforms => :rbx
|
|
6
|
-
gem 'rubinius-developer_tools', :platforms => :rbx
|
|
7
|
-
gem "jruby-openssl", :platforms => :jruby
|
|
8
|
-
gem "activerecord-jdbcsqlite3-adapter", :platforms => :jruby
|
|
9
|
-
gem "mime-types", "~> 2" if Gem::Version.create(RUBY_VERSION.dup) <= Gem::Version.create('1.9.3')
|
|
10
|
-
gem "rails", "4.0.13"
|
|
11
|
-
gem 'sequel'
|
|
12
|
-
gem 'mongo_mapper', '~>0.13'
|
|
13
|
-
gem 'bson_ext', :platforms => :ruby
|
|
14
|
-
gem 'dynamoid', '~> 1', :platforms => :ruby
|
|
15
|
-
gem 'aws-sdk', '~>2', :platforms => :ruby
|
|
16
|
-
|
|
17
|
-
gemspec :path => "../"
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
source "https://rubygems.org"
|
|
2
|
-
|
|
3
|
-
gem "sqlite3", :platforms => :ruby
|
|
4
|
-
gem "coveralls"
|
|
5
|
-
gem 'rubysl', :platforms => :rbx
|
|
6
|
-
gem 'rubinius-developer_tools', :platforms => :rbx
|
|
7
|
-
gem "jruby-openssl", :platforms => :jruby
|
|
8
|
-
gem "activerecord-jdbcsqlite3-adapter", :platforms => :jruby
|
|
9
|
-
gem "mime-types", "~> 2" if Gem::Version.create(RUBY_VERSION.dup) <= Gem::Version.create('1.9.3')
|
|
10
|
-
gem "rails", "4.2.5"
|
|
11
|
-
gem 'sequel'
|
|
12
|
-
gem 'mongo_mapper'
|
|
13
|
-
gem 'bson_ext', :platforms => :ruby
|
|
14
|
-
gem 'dynamoid', '~> 1', :platforms => :ruby
|
|
15
|
-
gem 'aws-sdk', '~>2', :platforms => :ruby
|
|
16
|
-
gem "redis-objects"
|
|
17
|
-
|
|
18
|
-
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,37 +0,0 @@
|
|
|
1
|
-
class ComplexMongoMapperExample
|
|
2
|
-
include MongoMapper::Document
|
|
3
|
-
include AASM
|
|
4
|
-
|
|
5
|
-
key :left, String
|
|
6
|
-
key :right, String
|
|
7
|
-
|
|
8
|
-
aasm :left, :column => 'left' do
|
|
9
|
-
state :one, :initial => true
|
|
10
|
-
state :two
|
|
11
|
-
state :three
|
|
12
|
-
|
|
13
|
-
event :increment do
|
|
14
|
-
transitions :from => :one, :to => :two
|
|
15
|
-
transitions :from => :two, :to => :three
|
|
16
|
-
end
|
|
17
|
-
event :reset do
|
|
18
|
-
transitions :from => :three, :to => :one
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
aasm :right, :column => 'right' do
|
|
23
|
-
state :alpha, :initial => true
|
|
24
|
-
state :beta
|
|
25
|
-
state :gamma
|
|
26
|
-
|
|
27
|
-
event :level_up do
|
|
28
|
-
transitions :from => :alpha, :to => :beta
|
|
29
|
-
transitions :from => :beta, :to => :gamma
|
|
30
|
-
end
|
|
31
|
-
event :level_down do
|
|
32
|
-
transitions :from => :gamma, :to => :beta
|
|
33
|
-
transitions :from => :beta, :to => :alpha
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
end
|
|
@@ -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
|
|
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
|
|
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
|