aasm 4.12.3 → 5.0.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 +14 -12
- data/Appraisals +39 -16
- data/CHANGELOG.md +16 -3
- data/Dockerfile +44 -0
- data/Gemfile +1 -2
- data/README.md +41 -11
- data/docker-compose.yml +40 -0
- data/gemfiles/rails_3.2.gemfile +6 -6
- data/gemfiles/rails_4.0.gemfile +7 -7
- data/gemfiles/rails_4.2.gemfile +8 -8
- data/gemfiles/rails_4.2_mongoid_5.gemfile +5 -5
- data/gemfiles/rails_4.2_nobrainer.gemfile +9 -0
- data/gemfiles/rails_5.0.gemfile +5 -6
- data/gemfiles/rails_5.0_nobrainer.gemfile +9 -0
- data/gemfiles/rails_5.1.gemfile +13 -0
- data/lib/aasm.rb +5 -0
- data/lib/aasm/aasm.rb +1 -0
- data/lib/aasm/core/event.rb +6 -21
- data/lib/aasm/core/invoker.rb +129 -0
- data/lib/aasm/core/invokers/base_invoker.rb +75 -0
- data/lib/aasm/core/invokers/class_invoker.rb +52 -0
- data/lib/aasm/core/invokers/literal_invoker.rb +47 -0
- data/lib/aasm/core/invokers/proc_invoker.rb +59 -0
- data/lib/aasm/core/state.rb +10 -9
- data/lib/aasm/core/transition.rb +7 -68
- data/lib/aasm/errors.rb +2 -2
- data/lib/aasm/persistence.rb +3 -0
- data/lib/aasm/persistence/active_record_persistence.rb +5 -4
- data/lib/aasm/persistence/no_brainer_persistence.rb +105 -0
- data/lib/aasm/persistence/plain_persistence.rb +2 -1
- data/lib/aasm/persistence/sequel_persistence.rb +0 -1
- data/lib/aasm/rspec/allow_event.rb +5 -1
- data/lib/aasm/rspec/allow_transition_to.rb +5 -1
- data/lib/aasm/version.rb +1 -1
- data/lib/generators/nobrainer/aasm_generator.rb +28 -0
- data/lib/motion-aasm.rb +1 -0
- data/spec/database.rb +3 -0
- data/spec/generators/no_brainer_generator_spec.rb +29 -0
- data/spec/models/active_record/simple_new_dsl.rb +15 -0
- data/spec/models/nobrainer/complex_no_brainer_example.rb +36 -0
- data/spec/models/nobrainer/invalid_persistor_no_brainer.rb +39 -0
- data/spec/models/nobrainer/no_scope_no_brainer.rb +21 -0
- data/spec/models/nobrainer/nobrainer_relationships.rb +25 -0
- data/spec/models/nobrainer/silent_persistor_no_brainer.rb +39 -0
- data/spec/models/nobrainer/simple_new_dsl_nobrainer.rb +25 -0
- data/spec/models/nobrainer/simple_no_brainer.rb +23 -0
- data/spec/models/nobrainer/validator_no_brainer.rb +98 -0
- data/spec/models/simple_example.rb +2 -0
- data/spec/models/simple_example_with_guard_args.rb +17 -0
- data/spec/spec_helpers/active_record.rb +2 -1
- data/spec/spec_helpers/dynamoid.rb +7 -5
- data/spec/spec_helpers/mongoid.rb +20 -1
- data/spec/spec_helpers/nobrainer.rb +15 -0
- data/spec/spec_helpers/redis.rb +5 -2
- data/spec/spec_helpers/sequel.rb +1 -1
- data/spec/unit/callback_multiple_spec.rb +3 -3
- data/spec/unit/callbacks_spec.rb +2 -2
- data/spec/unit/exception_spec.rb +1 -1
- data/spec/unit/invoker_spec.rb +189 -0
- data/spec/unit/invokers/base_invoker_spec.rb +72 -0
- data/spec/unit/invokers/class_invoker_spec.rb +95 -0
- data/spec/unit/invokers/literal_invoker_spec.rb +86 -0
- data/spec/unit/invokers/proc_invoker_spec.rb +86 -0
- data/spec/unit/persistence/active_record_persistence_spec.rb +16 -0
- data/spec/unit/persistence/mongoid_persistence_multiple_spec.rb +0 -4
- data/spec/unit/persistence/mongoid_persistence_spec.rb +0 -4
- data/spec/unit/persistence/no_brainer_persistence_multiple_spec.rb +198 -0
- data/spec/unit/persistence/no_brainer_persistence_spec.rb +158 -0
- data/spec/unit/rspec_matcher_spec.rb +6 -0
- data/spec/unit/state_spec.rb +2 -2
- data/spec/unit/transition_spec.rb +1 -1
- data/test/minitest_helper.rb +2 -2
- data/test/unit/minitest_matcher_test.rb +1 -1
- metadata +51 -3
@@ -63,6 +63,12 @@ describe 'state machine' do
|
|
63
63
|
expect(simple).to allow_event :authorise
|
64
64
|
end
|
65
65
|
|
66
|
+
it "works with custom arguments" do
|
67
|
+
example = SimpleExampleWithGuardArgs.new
|
68
|
+
expect(example).to allow_event(:fill_out_with_args).with(true)
|
69
|
+
expect(example).to_not allow_event(:fill_out_with_args).with(false)
|
70
|
+
end
|
71
|
+
|
66
72
|
it "works for multiple state machines" do
|
67
73
|
expect(multiple).to allow_event(:walk).on(:move)
|
68
74
|
expect(multiple).to_not allow_event(:hold).on(:move)
|
data/spec/unit/state_spec.rb
CHANGED
@@ -64,7 +64,7 @@ describe AASM::Core::State do
|
|
64
64
|
expect(record).to receive(:c)
|
65
65
|
expect(record).to receive(:foobar)
|
66
66
|
|
67
|
-
state.fire_callbacks(:entering, record)
|
67
|
+
state.fire_callbacks(:entering, record, record)
|
68
68
|
end
|
69
69
|
|
70
70
|
it "should stop calling actions if one of them raises :halt_aasm_chain" do
|
@@ -84,6 +84,6 @@ describe AASM::Core::State do
|
|
84
84
|
record = double('record')
|
85
85
|
expect(record).to receive(:foobar)
|
86
86
|
|
87
|
-
state.fire_callbacks(:entering, record)
|
87
|
+
state.fire_callbacks(:entering, record, record)
|
88
88
|
end
|
89
89
|
end
|
@@ -6,7 +6,7 @@ describe 'transitions' do
|
|
6
6
|
process = ProcessWithNewDsl.new
|
7
7
|
expect { process.stop! }.to raise_error do |err|
|
8
8
|
expect(err.class).to eql(AASM::InvalidTransition)
|
9
|
-
expect(err.message).to eql("Event 'stop' cannot transition from 'sleeping'.
|
9
|
+
expect(err.message).to eql("Event 'stop' cannot transition from 'sleeping'.")
|
10
10
|
expect(err.object).to eql(process)
|
11
11
|
expect(err.event_name).to eql(:stop)
|
12
12
|
end
|
data/test/minitest_helper.rb
CHANGED
@@ -34,8 +34,8 @@ begin
|
|
34
34
|
})
|
35
35
|
|
36
36
|
Dynamoid.configure do |config|
|
37
|
-
config.namespace =
|
38
|
-
config.endpoint = '
|
37
|
+
config.namespace = 'dynamoid_tests'
|
38
|
+
config.endpoint = "http://#{ENV['DYNAMODB_HOST'] || '127.0.0.1'}:30180"
|
39
39
|
config.warn_on_scan = false
|
40
40
|
end
|
41
41
|
|
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
|
+
version: 5.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thorsten Boettger
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2018-09-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: concurrent-ruby
|
@@ -124,6 +124,7 @@ files:
|
|
124
124
|
- CHANGELOG.md
|
125
125
|
- CODE_OF_CONDUCT.md
|
126
126
|
- CONTRIBUTING.md
|
127
|
+
- Dockerfile
|
127
128
|
- Gemfile
|
128
129
|
- Gemfile.lock_old
|
129
130
|
- HOWTO
|
@@ -135,16 +136,25 @@ files:
|
|
135
136
|
- TESTING.md
|
136
137
|
- aasm.gemspec
|
137
138
|
- callbacks.txt
|
139
|
+
- docker-compose.yml
|
138
140
|
- gemfiles/rails_3.2.gemfile
|
139
141
|
- gemfiles/rails_4.0.gemfile
|
140
142
|
- gemfiles/rails_4.2.gemfile
|
141
143
|
- gemfiles/rails_4.2_mongoid_5.gemfile
|
144
|
+
- gemfiles/rails_4.2_nobrainer.gemfile
|
142
145
|
- gemfiles/rails_5.0.gemfile
|
146
|
+
- gemfiles/rails_5.0_nobrainer.gemfile
|
147
|
+
- gemfiles/rails_5.1.gemfile
|
143
148
|
- lib/aasm.rb
|
144
149
|
- lib/aasm/aasm.rb
|
145
150
|
- lib/aasm/base.rb
|
146
151
|
- lib/aasm/configuration.rb
|
147
152
|
- lib/aasm/core/event.rb
|
153
|
+
- lib/aasm/core/invoker.rb
|
154
|
+
- lib/aasm/core/invokers/base_invoker.rb
|
155
|
+
- lib/aasm/core/invokers/class_invoker.rb
|
156
|
+
- lib/aasm/core/invokers/literal_invoker.rb
|
157
|
+
- lib/aasm/core/invokers/proc_invoker.rb
|
148
158
|
- lib/aasm/core/state.rb
|
149
159
|
- lib/aasm/core/transition.rb
|
150
160
|
- lib/aasm/dsl_helper.rb
|
@@ -163,6 +173,7 @@ files:
|
|
163
173
|
- lib/aasm/persistence/core_data_query_persistence.rb
|
164
174
|
- lib/aasm/persistence/dynamoid_persistence.rb
|
165
175
|
- lib/aasm/persistence/mongoid_persistence.rb
|
176
|
+
- lib/aasm/persistence/no_brainer_persistence.rb
|
166
177
|
- lib/aasm/persistence/orm.rb
|
167
178
|
- lib/aasm/persistence/plain_persistence.rb
|
168
179
|
- lib/aasm/persistence/redis_persistence.rb
|
@@ -181,6 +192,7 @@ files:
|
|
181
192
|
- lib/generators/active_record/templates/migration.rb
|
182
193
|
- lib/generators/active_record/templates/migration_existing.rb
|
183
194
|
- lib/generators/mongoid/aasm_generator.rb
|
195
|
+
- lib/generators/nobrainer/aasm_generator.rb
|
184
196
|
- lib/motion-aasm.rb
|
185
197
|
- spec/database.rb
|
186
198
|
- spec/database.yml
|
@@ -188,6 +200,7 @@ files:
|
|
188
200
|
- spec/en_deprecated_style.yml
|
189
201
|
- spec/generators/active_record_generator_spec.rb
|
190
202
|
- spec/generators/mongoid_generator_spec.rb
|
203
|
+
- spec/generators/no_brainer_generator_spec.rb
|
191
204
|
- spec/models/active_record/basic_active_record_two_state_machines_example.rb
|
192
205
|
- spec/models/active_record/complex_active_record_example.rb
|
193
206
|
- spec/models/active_record/derivate_new_dsl.rb
|
@@ -254,6 +267,14 @@ files:
|
|
254
267
|
- spec/models/multiple_transitions_that_differ_only_by_guard.rb
|
255
268
|
- spec/models/namespaced_multiple_example.rb
|
256
269
|
- spec/models/no_initial_state.rb
|
270
|
+
- spec/models/nobrainer/complex_no_brainer_example.rb
|
271
|
+
- spec/models/nobrainer/invalid_persistor_no_brainer.rb
|
272
|
+
- spec/models/nobrainer/no_scope_no_brainer.rb
|
273
|
+
- spec/models/nobrainer/nobrainer_relationships.rb
|
274
|
+
- spec/models/nobrainer/silent_persistor_no_brainer.rb
|
275
|
+
- spec/models/nobrainer/simple_new_dsl_nobrainer.rb
|
276
|
+
- spec/models/nobrainer/simple_no_brainer.rb
|
277
|
+
- spec/models/nobrainer/validator_no_brainer.rb
|
257
278
|
- spec/models/not_auto_loaded/process.rb
|
258
279
|
- spec/models/parametrised_event.rb
|
259
280
|
- spec/models/parametrised_event_multiple.rb
|
@@ -273,6 +294,7 @@ files:
|
|
273
294
|
- spec/models/silencer.rb
|
274
295
|
- spec/models/simple_custom_example.rb
|
275
296
|
- spec/models/simple_example.rb
|
297
|
+
- spec/models/simple_example_with_guard_args.rb
|
276
298
|
- spec/models/simple_multiple_example.rb
|
277
299
|
- spec/models/state_machine_with_failed_event.rb
|
278
300
|
- spec/models/states_on_one_line_example.rb
|
@@ -286,6 +308,7 @@ files:
|
|
286
308
|
- spec/spec_helpers/active_record.rb
|
287
309
|
- spec/spec_helpers/dynamoid.rb
|
288
310
|
- spec/spec_helpers/mongoid.rb
|
311
|
+
- spec/spec_helpers/nobrainer.rb
|
289
312
|
- spec/spec_helpers/redis.rb
|
290
313
|
- spec/spec_helpers/remove_warnings.rb
|
291
314
|
- spec/spec_helpers/sequel.rb
|
@@ -310,6 +333,11 @@ files:
|
|
310
333
|
- spec/unit/initial_state_spec.rb
|
311
334
|
- spec/unit/inspection_multiple_spec.rb
|
312
335
|
- spec/unit/inspection_spec.rb
|
336
|
+
- spec/unit/invoker_spec.rb
|
337
|
+
- spec/unit/invokers/base_invoker_spec.rb
|
338
|
+
- spec/unit/invokers/class_invoker_spec.rb
|
339
|
+
- spec/unit/invokers/literal_invoker_spec.rb
|
340
|
+
- spec/unit/invokers/proc_invoker_spec.rb
|
313
341
|
- spec/unit/localizer_spec.rb
|
314
342
|
- spec/unit/memory_leak_spec.rb
|
315
343
|
- spec/unit/multiple_transitions_that_differ_only_by_guard_spec.rb
|
@@ -322,6 +350,8 @@ files:
|
|
322
350
|
- spec/unit/persistence/dynamoid_persistence_spec.rb
|
323
351
|
- spec/unit/persistence/mongoid_persistence_multiple_spec.rb
|
324
352
|
- spec/unit/persistence/mongoid_persistence_spec.rb
|
353
|
+
- spec/unit/persistence/no_brainer_persistence_multiple_spec.rb
|
354
|
+
- spec/unit/persistence/no_brainer_persistence_spec.rb
|
325
355
|
- spec/unit/persistence/redis_persistence_multiple_spec.rb
|
326
356
|
- spec/unit/persistence/redis_persistence_spec.rb
|
327
357
|
- spec/unit/persistence/sequel_persistence_multiple_spec.rb
|
@@ -359,7 +389,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
359
389
|
version: '0'
|
360
390
|
requirements: []
|
361
391
|
rubyforge_project:
|
362
|
-
rubygems_version: 2.6.
|
392
|
+
rubygems_version: 2.6.14
|
363
393
|
signing_key:
|
364
394
|
specification_version: 4
|
365
395
|
summary: State machine mixin for Ruby objects
|
@@ -370,6 +400,7 @@ test_files:
|
|
370
400
|
- spec/en_deprecated_style.yml
|
371
401
|
- spec/generators/active_record_generator_spec.rb
|
372
402
|
- spec/generators/mongoid_generator_spec.rb
|
403
|
+
- spec/generators/no_brainer_generator_spec.rb
|
373
404
|
- spec/models/active_record/basic_active_record_two_state_machines_example.rb
|
374
405
|
- spec/models/active_record/complex_active_record_example.rb
|
375
406
|
- spec/models/active_record/derivate_new_dsl.rb
|
@@ -436,6 +467,14 @@ test_files:
|
|
436
467
|
- spec/models/multiple_transitions_that_differ_only_by_guard.rb
|
437
468
|
- spec/models/namespaced_multiple_example.rb
|
438
469
|
- spec/models/no_initial_state.rb
|
470
|
+
- spec/models/nobrainer/complex_no_brainer_example.rb
|
471
|
+
- spec/models/nobrainer/invalid_persistor_no_brainer.rb
|
472
|
+
- spec/models/nobrainer/no_scope_no_brainer.rb
|
473
|
+
- spec/models/nobrainer/nobrainer_relationships.rb
|
474
|
+
- spec/models/nobrainer/silent_persistor_no_brainer.rb
|
475
|
+
- spec/models/nobrainer/simple_new_dsl_nobrainer.rb
|
476
|
+
- spec/models/nobrainer/simple_no_brainer.rb
|
477
|
+
- spec/models/nobrainer/validator_no_brainer.rb
|
439
478
|
- spec/models/not_auto_loaded/process.rb
|
440
479
|
- spec/models/parametrised_event.rb
|
441
480
|
- spec/models/parametrised_event_multiple.rb
|
@@ -455,6 +494,7 @@ test_files:
|
|
455
494
|
- spec/models/silencer.rb
|
456
495
|
- spec/models/simple_custom_example.rb
|
457
496
|
- spec/models/simple_example.rb
|
497
|
+
- spec/models/simple_example_with_guard_args.rb
|
458
498
|
- spec/models/simple_multiple_example.rb
|
459
499
|
- spec/models/state_machine_with_failed_event.rb
|
460
500
|
- spec/models/states_on_one_line_example.rb
|
@@ -468,6 +508,7 @@ test_files:
|
|
468
508
|
- spec/spec_helpers/active_record.rb
|
469
509
|
- spec/spec_helpers/dynamoid.rb
|
470
510
|
- spec/spec_helpers/mongoid.rb
|
511
|
+
- spec/spec_helpers/nobrainer.rb
|
471
512
|
- spec/spec_helpers/redis.rb
|
472
513
|
- spec/spec_helpers/remove_warnings.rb
|
473
514
|
- spec/spec_helpers/sequel.rb
|
@@ -492,6 +533,11 @@ test_files:
|
|
492
533
|
- spec/unit/initial_state_spec.rb
|
493
534
|
- spec/unit/inspection_multiple_spec.rb
|
494
535
|
- spec/unit/inspection_spec.rb
|
536
|
+
- spec/unit/invoker_spec.rb
|
537
|
+
- spec/unit/invokers/base_invoker_spec.rb
|
538
|
+
- spec/unit/invokers/class_invoker_spec.rb
|
539
|
+
- spec/unit/invokers/literal_invoker_spec.rb
|
540
|
+
- spec/unit/invokers/proc_invoker_spec.rb
|
495
541
|
- spec/unit/localizer_spec.rb
|
496
542
|
- spec/unit/memory_leak_spec.rb
|
497
543
|
- spec/unit/multiple_transitions_that_differ_only_by_guard_spec.rb
|
@@ -504,6 +550,8 @@ test_files:
|
|
504
550
|
- spec/unit/persistence/dynamoid_persistence_spec.rb
|
505
551
|
- spec/unit/persistence/mongoid_persistence_multiple_spec.rb
|
506
552
|
- spec/unit/persistence/mongoid_persistence_spec.rb
|
553
|
+
- spec/unit/persistence/no_brainer_persistence_multiple_spec.rb
|
554
|
+
- spec/unit/persistence/no_brainer_persistence_spec.rb
|
507
555
|
- spec/unit/persistence/redis_persistence_multiple_spec.rb
|
508
556
|
- spec/unit/persistence/redis_persistence_spec.rb
|
509
557
|
- spec/unit/persistence/sequel_persistence_multiple_spec.rb
|