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.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +14 -12
  3. data/Appraisals +39 -16
  4. data/CHANGELOG.md +16 -3
  5. data/Dockerfile +44 -0
  6. data/Gemfile +1 -2
  7. data/README.md +41 -11
  8. data/docker-compose.yml +40 -0
  9. data/gemfiles/rails_3.2.gemfile +6 -6
  10. data/gemfiles/rails_4.0.gemfile +7 -7
  11. data/gemfiles/rails_4.2.gemfile +8 -8
  12. data/gemfiles/rails_4.2_mongoid_5.gemfile +5 -5
  13. data/gemfiles/rails_4.2_nobrainer.gemfile +9 -0
  14. data/gemfiles/rails_5.0.gemfile +5 -6
  15. data/gemfiles/rails_5.0_nobrainer.gemfile +9 -0
  16. data/gemfiles/rails_5.1.gemfile +13 -0
  17. data/lib/aasm.rb +5 -0
  18. data/lib/aasm/aasm.rb +1 -0
  19. data/lib/aasm/core/event.rb +6 -21
  20. data/lib/aasm/core/invoker.rb +129 -0
  21. data/lib/aasm/core/invokers/base_invoker.rb +75 -0
  22. data/lib/aasm/core/invokers/class_invoker.rb +52 -0
  23. data/lib/aasm/core/invokers/literal_invoker.rb +47 -0
  24. data/lib/aasm/core/invokers/proc_invoker.rb +59 -0
  25. data/lib/aasm/core/state.rb +10 -9
  26. data/lib/aasm/core/transition.rb +7 -68
  27. data/lib/aasm/errors.rb +2 -2
  28. data/lib/aasm/persistence.rb +3 -0
  29. data/lib/aasm/persistence/active_record_persistence.rb +5 -4
  30. data/lib/aasm/persistence/no_brainer_persistence.rb +105 -0
  31. data/lib/aasm/persistence/plain_persistence.rb +2 -1
  32. data/lib/aasm/persistence/sequel_persistence.rb +0 -1
  33. data/lib/aasm/rspec/allow_event.rb +5 -1
  34. data/lib/aasm/rspec/allow_transition_to.rb +5 -1
  35. data/lib/aasm/version.rb +1 -1
  36. data/lib/generators/nobrainer/aasm_generator.rb +28 -0
  37. data/lib/motion-aasm.rb +1 -0
  38. data/spec/database.rb +3 -0
  39. data/spec/generators/no_brainer_generator_spec.rb +29 -0
  40. data/spec/models/active_record/simple_new_dsl.rb +15 -0
  41. data/spec/models/nobrainer/complex_no_brainer_example.rb +36 -0
  42. data/spec/models/nobrainer/invalid_persistor_no_brainer.rb +39 -0
  43. data/spec/models/nobrainer/no_scope_no_brainer.rb +21 -0
  44. data/spec/models/nobrainer/nobrainer_relationships.rb +25 -0
  45. data/spec/models/nobrainer/silent_persistor_no_brainer.rb +39 -0
  46. data/spec/models/nobrainer/simple_new_dsl_nobrainer.rb +25 -0
  47. data/spec/models/nobrainer/simple_no_brainer.rb +23 -0
  48. data/spec/models/nobrainer/validator_no_brainer.rb +98 -0
  49. data/spec/models/simple_example.rb +2 -0
  50. data/spec/models/simple_example_with_guard_args.rb +17 -0
  51. data/spec/spec_helpers/active_record.rb +2 -1
  52. data/spec/spec_helpers/dynamoid.rb +7 -5
  53. data/spec/spec_helpers/mongoid.rb +20 -1
  54. data/spec/spec_helpers/nobrainer.rb +15 -0
  55. data/spec/spec_helpers/redis.rb +5 -2
  56. data/spec/spec_helpers/sequel.rb +1 -1
  57. data/spec/unit/callback_multiple_spec.rb +3 -3
  58. data/spec/unit/callbacks_spec.rb +2 -2
  59. data/spec/unit/exception_spec.rb +1 -1
  60. data/spec/unit/invoker_spec.rb +189 -0
  61. data/spec/unit/invokers/base_invoker_spec.rb +72 -0
  62. data/spec/unit/invokers/class_invoker_spec.rb +95 -0
  63. data/spec/unit/invokers/literal_invoker_spec.rb +86 -0
  64. data/spec/unit/invokers/proc_invoker_spec.rb +86 -0
  65. data/spec/unit/persistence/active_record_persistence_spec.rb +16 -0
  66. data/spec/unit/persistence/mongoid_persistence_multiple_spec.rb +0 -4
  67. data/spec/unit/persistence/mongoid_persistence_spec.rb +0 -4
  68. data/spec/unit/persistence/no_brainer_persistence_multiple_spec.rb +198 -0
  69. data/spec/unit/persistence/no_brainer_persistence_spec.rb +158 -0
  70. data/spec/unit/rspec_matcher_spec.rb +6 -0
  71. data/spec/unit/state_spec.rb +2 -2
  72. data/spec/unit/transition_spec.rb +1 -1
  73. data/test/minitest_helper.rb +2 -2
  74. data/test/unit/minitest_matcher_test.rb +1 -1
  75. 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)
@@ -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
@@ -34,8 +34,8 @@ begin
34
34
  })
35
35
 
36
36
  Dynamoid.configure do |config|
37
- config.namespace = "dynamoid_tests"
38
- config.endpoint = 'http://127.0.0.1:30180'
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
 
@@ -1,7 +1,7 @@
1
1
  require 'minitest_helper'
2
2
 
3
3
  class StateMachineTest < Minitest::Spec
4
-
4
+
5
5
  let(:simple) { SimpleExample.new }
6
6
  let(:multiple) { SimpleMultipleExample.new }
7
7
 
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.12.3
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: 2017-10-24 00:00:00.000000000 Z
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.12
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