aasm 5.3.1 → 5.4.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.
Files changed (220) hide show
  1. checksums.yaml +4 -4
  2. data/lib/aasm/version.rb +1 -1
  3. metadata +3 -409
  4. data/.document +0 -6
  5. data/.github/ISSUE_TEMPLATE/bug_report.md +0 -27
  6. data/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  7. data/.github/workflows/build.yml +0 -102
  8. data/.gitignore +0 -20
  9. data/API +0 -34
  10. data/Appraisals +0 -51
  11. data/CHANGELOG.md +0 -469
  12. data/CODE_OF_CONDUCT.md +0 -13
  13. data/CONTRIBUTING.md +0 -24
  14. data/Dockerfile +0 -44
  15. data/Gemfile +0 -7
  16. data/Gemfile.lock_old +0 -151
  17. data/HOWTO +0 -12
  18. data/PLANNED_CHANGES.md +0 -11
  19. data/README_FROM_VERSION_3_TO_4.md +0 -240
  20. data/Rakefile +0 -31
  21. data/TESTING.md +0 -25
  22. data/aasm.gemspec +0 -37
  23. data/docker-compose.yml +0 -40
  24. data/gemfiles/norails.gemfile +0 -11
  25. data/gemfiles/rails_4.2.gemfile +0 -17
  26. data/gemfiles/rails_4.2_mongoid_5.gemfile +0 -12
  27. data/gemfiles/rails_4.2_nobrainer.gemfile +0 -10
  28. data/gemfiles/rails_5.2.gemfile +0 -14
  29. data/gemfiles/rails_6.0.gemfile +0 -14
  30. data/gemfiles/rails_6.1.gemfile +0 -14
  31. data/gemfiles/rails_7.0.gemfile +0 -14
  32. data/spec/database.rb +0 -57
  33. data/spec/database.yml +0 -3
  34. data/spec/en.yml +0 -9
  35. data/spec/generators/active_record_generator_spec.rb +0 -53
  36. data/spec/generators/mongoid_generator_spec.rb +0 -31
  37. data/spec/generators/no_brainer_generator_spec.rb +0 -29
  38. data/spec/localizer_test_model_deprecated_style.yml +0 -13
  39. data/spec/localizer_test_model_new_style.yml +0 -11
  40. data/spec/models/active_record/active_record_callback.rb +0 -93
  41. data/spec/models/active_record/basic_active_record_two_state_machines_example.rb +0 -25
  42. data/spec/models/active_record/complex_active_record_example.rb +0 -37
  43. data/spec/models/active_record/derivate_new_dsl.rb +0 -7
  44. data/spec/models/active_record/false_state.rb +0 -35
  45. data/spec/models/active_record/gate.rb +0 -39
  46. data/spec/models/active_record/instance_level_skip_validation_example.rb +0 -19
  47. data/spec/models/active_record/invalid_persistor.rb +0 -29
  48. data/spec/models/active_record/localizer_test_model.rb +0 -42
  49. data/spec/models/active_record/namespaced.rb +0 -16
  50. data/spec/models/active_record/no_direct_assignment.rb +0 -21
  51. data/spec/models/active_record/no_scope.rb +0 -21
  52. data/spec/models/active_record/persisted_state.rb +0 -12
  53. data/spec/models/active_record/person.rb +0 -23
  54. data/spec/models/active_record/provided_and_persisted_state.rb +0 -24
  55. data/spec/models/active_record/reader.rb +0 -7
  56. data/spec/models/active_record/readme_job.rb +0 -21
  57. data/spec/models/active_record/silent_persistor.rb +0 -29
  58. data/spec/models/active_record/simple_new_dsl.rb +0 -32
  59. data/spec/models/active_record/thief.rb +0 -29
  60. data/spec/models/active_record/timestamp_example.rb +0 -16
  61. data/spec/models/active_record/transactor.rb +0 -124
  62. data/spec/models/active_record/transient.rb +0 -6
  63. data/spec/models/active_record/validator.rb +0 -118
  64. data/spec/models/active_record/with_enum.rb +0 -39
  65. data/spec/models/active_record/with_enum_without_column.rb +0 -38
  66. data/spec/models/active_record/with_false_enum.rb +0 -31
  67. data/spec/models/active_record/with_true_enum.rb +0 -39
  68. data/spec/models/active_record/work.rb +0 -3
  69. data/spec/models/active_record/worker.rb +0 -2
  70. data/spec/models/active_record/writer.rb +0 -6
  71. data/spec/models/basic_two_state_machines_example.rb +0 -25
  72. data/spec/models/callbacks/basic.rb +0 -98
  73. data/spec/models/callbacks/basic_multiple.rb +0 -75
  74. data/spec/models/callbacks/guard_within_block.rb +0 -67
  75. data/spec/models/callbacks/guard_within_block_multiple.rb +0 -66
  76. data/spec/models/callbacks/multiple_transitions_transition_guard.rb +0 -66
  77. data/spec/models/callbacks/multiple_transitions_transition_guard_multiple.rb +0 -65
  78. data/spec/models/callbacks/private_method.rb +0 -44
  79. data/spec/models/callbacks/private_method_multiple.rb +0 -44
  80. data/spec/models/callbacks/with_args.rb +0 -62
  81. data/spec/models/callbacks/with_args_multiple.rb +0 -61
  82. data/spec/models/callbacks/with_state_arg.rb +0 -34
  83. data/spec/models/callbacks/with_state_arg_multiple.rb +0 -29
  84. data/spec/models/complex_example.rb +0 -222
  85. data/spec/models/conversation.rb +0 -93
  86. data/spec/models/default_state.rb +0 -12
  87. data/spec/models/double_definer.rb +0 -21
  88. data/spec/models/dynamoid/complex_dynamoid_example.rb +0 -37
  89. data/spec/models/dynamoid/dynamoid_multiple.rb +0 -18
  90. data/spec/models/dynamoid/dynamoid_simple.rb +0 -18
  91. data/spec/models/event_with_keyword_arguments.rb +0 -16
  92. data/spec/models/foo.rb +0 -106
  93. data/spec/models/foo_callback_multiple.rb +0 -45
  94. data/spec/models/guard_arguments_check.rb +0 -17
  95. data/spec/models/guard_with_params.rb +0 -24
  96. data/spec/models/guard_with_params_multiple.rb +0 -18
  97. data/spec/models/guardian.rb +0 -58
  98. data/spec/models/guardian_multiple.rb +0 -48
  99. data/spec/models/guardian_without_from_specified.rb +0 -18
  100. data/spec/models/initial_state_proc.rb +0 -31
  101. data/spec/models/mongoid/complex_mongoid_example.rb +0 -37
  102. data/spec/models/mongoid/invalid_persistor_mongoid.rb +0 -39
  103. data/spec/models/mongoid/mongoid_relationships.rb +0 -26
  104. data/spec/models/mongoid/no_scope_mongoid.rb +0 -21
  105. data/spec/models/mongoid/silent_persistor_mongoid.rb +0 -39
  106. data/spec/models/mongoid/simple_mongoid.rb +0 -23
  107. data/spec/models/mongoid/simple_new_dsl_mongoid.rb +0 -25
  108. data/spec/models/mongoid/timestamp_example_mongoid.rb +0 -20
  109. data/spec/models/mongoid/validator_mongoid.rb +0 -100
  110. data/spec/models/multi_transitioner.rb +0 -34
  111. data/spec/models/multiple_transitions_that_differ_only_by_guard.rb +0 -31
  112. data/spec/models/namespaced_multiple_example.rb +0 -42
  113. data/spec/models/no_initial_state.rb +0 -25
  114. data/spec/models/nobrainer/complex_no_brainer_example.rb +0 -36
  115. data/spec/models/nobrainer/invalid_persistor_no_brainer.rb +0 -39
  116. data/spec/models/nobrainer/no_scope_no_brainer.rb +0 -21
  117. data/spec/models/nobrainer/nobrainer_relationships.rb +0 -25
  118. data/spec/models/nobrainer/silent_persistor_no_brainer.rb +0 -39
  119. data/spec/models/nobrainer/simple_new_dsl_nobrainer.rb +0 -25
  120. data/spec/models/nobrainer/simple_no_brainer.rb +0 -23
  121. data/spec/models/nobrainer/validator_no_brainer.rb +0 -98
  122. data/spec/models/not_auto_loaded/process.rb +0 -21
  123. data/spec/models/parametrised_event.rb +0 -42
  124. data/spec/models/parametrised_event_multiple.rb +0 -29
  125. data/spec/models/process_with_new_dsl.rb +0 -31
  126. data/spec/models/provided_state.rb +0 -24
  127. data/spec/models/redis/complex_redis_example.rb +0 -40
  128. data/spec/models/redis/redis_multiple.rb +0 -20
  129. data/spec/models/redis/redis_simple.rb +0 -20
  130. data/spec/models/sequel/complex_sequel_example.rb +0 -46
  131. data/spec/models/sequel/invalid_persistor.rb +0 -52
  132. data/spec/models/sequel/sequel_multiple.rb +0 -25
  133. data/spec/models/sequel/sequel_simple.rb +0 -26
  134. data/spec/models/sequel/silent_persistor.rb +0 -50
  135. data/spec/models/sequel/transactor.rb +0 -112
  136. data/spec/models/sequel/validator.rb +0 -93
  137. data/spec/models/sequel/worker.rb +0 -12
  138. data/spec/models/silencer.rb +0 -27
  139. data/spec/models/simple_custom_example.rb +0 -53
  140. data/spec/models/simple_example.rb +0 -23
  141. data/spec/models/simple_example_with_guard_args.rb +0 -17
  142. data/spec/models/simple_multiple_example.rb +0 -42
  143. data/spec/models/state_machine_with_failed_event.rb +0 -20
  144. data/spec/models/states_on_one_line_example.rb +0 -8
  145. data/spec/models/sub_class.rb +0 -41
  146. data/spec/models/sub_class_with_more_states.rb +0 -18
  147. data/spec/models/sub_classing.rb +0 -3
  148. data/spec/models/super_class.rb +0 -46
  149. data/spec/models/this_name_better_not_be_in_use.rb +0 -11
  150. data/spec/models/timestamps_example.rb +0 -19
  151. data/spec/models/timestamps_with_named_machine_example.rb +0 -13
  152. data/spec/models/valid_state_name.rb +0 -23
  153. data/spec/spec_helper.rb +0 -41
  154. data/spec/spec_helpers/active_record.rb +0 -8
  155. data/spec/spec_helpers/dynamoid.rb +0 -39
  156. data/spec/spec_helpers/mongoid.rb +0 -27
  157. data/spec/spec_helpers/nobrainer.rb +0 -15
  158. data/spec/spec_helpers/redis.rb +0 -18
  159. data/spec/spec_helpers/remove_warnings.rb +0 -1
  160. data/spec/spec_helpers/sequel.rb +0 -7
  161. data/spec/unit/abstract_class_spec.rb +0 -27
  162. data/spec/unit/api_spec.rb +0 -104
  163. data/spec/unit/basic_two_state_machines_example_spec.rb +0 -10
  164. data/spec/unit/callback_multiple_spec.rb +0 -304
  165. data/spec/unit/callbacks_spec.rb +0 -551
  166. data/spec/unit/complex_example_spec.rb +0 -101
  167. data/spec/unit/complex_multiple_example_spec.rb +0 -115
  168. data/spec/unit/edge_cases_spec.rb +0 -16
  169. data/spec/unit/event_multiple_spec.rb +0 -73
  170. data/spec/unit/event_naming_spec.rb +0 -16
  171. data/spec/unit/event_spec.rb +0 -411
  172. data/spec/unit/event_with_keyword_arguments_spec.rb +0 -10
  173. data/spec/unit/exception_spec.rb +0 -11
  174. data/spec/unit/guard_arguments_check_spec.rb +0 -9
  175. data/spec/unit/guard_multiple_spec.rb +0 -60
  176. data/spec/unit/guard_spec.rb +0 -89
  177. data/spec/unit/guard_with_params_multiple_spec.rb +0 -10
  178. data/spec/unit/guard_with_params_spec.rb +0 -14
  179. data/spec/unit/guard_without_from_specified_spec.rb +0 -10
  180. data/spec/unit/initial_state_multiple_spec.rb +0 -15
  181. data/spec/unit/initial_state_spec.rb +0 -12
  182. data/spec/unit/inspection_multiple_spec.rb +0 -205
  183. data/spec/unit/inspection_spec.rb +0 -153
  184. data/spec/unit/invoker_spec.rb +0 -189
  185. data/spec/unit/invokers/base_invoker_spec.rb +0 -72
  186. data/spec/unit/invokers/class_invoker_spec.rb +0 -95
  187. data/spec/unit/invokers/literal_invoker_spec.rb +0 -86
  188. data/spec/unit/invokers/proc_invoker_spec.rb +0 -86
  189. data/spec/unit/localizer_spec.rb +0 -109
  190. data/spec/unit/memory_leak_spec.rb +0 -38
  191. data/spec/unit/multiple_transitions_that_differ_only_by_guard_spec.rb +0 -14
  192. data/spec/unit/namespaced_multiple_example_spec.rb +0 -75
  193. data/spec/unit/new_dsl_spec.rb +0 -12
  194. data/spec/unit/override_warning_spec.rb +0 -94
  195. data/spec/unit/persistence/active_record_persistence_multiple_spec.rb +0 -635
  196. data/spec/unit/persistence/active_record_persistence_spec.rb +0 -852
  197. data/spec/unit/persistence/dynamoid_persistence_multiple_spec.rb +0 -135
  198. data/spec/unit/persistence/dynamoid_persistence_spec.rb +0 -84
  199. data/spec/unit/persistence/mongoid_persistence_multiple_spec.rb +0 -200
  200. data/spec/unit/persistence/mongoid_persistence_spec.rb +0 -177
  201. data/spec/unit/persistence/no_brainer_persistence_multiple_spec.rb +0 -198
  202. data/spec/unit/persistence/no_brainer_persistence_spec.rb +0 -158
  203. data/spec/unit/persistence/redis_persistence_multiple_spec.rb +0 -88
  204. data/spec/unit/persistence/redis_persistence_spec.rb +0 -53
  205. data/spec/unit/persistence/sequel_persistence_multiple_spec.rb +0 -148
  206. data/spec/unit/persistence/sequel_persistence_spec.rb +0 -368
  207. data/spec/unit/readme_spec.rb +0 -41
  208. data/spec/unit/reloading_spec.rb +0 -15
  209. data/spec/unit/rspec_matcher_spec.rb +0 -88
  210. data/spec/unit/simple_custom_example_spec.rb +0 -39
  211. data/spec/unit/simple_example_spec.rb +0 -57
  212. data/spec/unit/simple_multiple_example_spec.rb +0 -91
  213. data/spec/unit/state_spec.rb +0 -105
  214. data/spec/unit/states_on_one_line_example_spec.rb +0 -16
  215. data/spec/unit/subclassing_multiple_spec.rb +0 -74
  216. data/spec/unit/subclassing_spec.rb +0 -46
  217. data/spec/unit/timestamps_spec.rb +0 -32
  218. data/spec/unit/transition_spec.rb +0 -436
  219. data/test/minitest_helper.rb +0 -61
  220. data/test/unit/minitest_matcher_test.rb +0 -80
@@ -1,75 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe 'state machine' do
4
- let(:namespaced) { NamespacedMultipleExample.new }
5
-
6
- it 'starts with an initial state' do
7
- expect(namespaced.aasm(:status).current_state).to eq(:unapproved)
8
- expect(namespaced).to respond_to(:unapproved?)
9
- expect(namespaced).to be_unapproved
10
-
11
- expect(namespaced.aasm(:review_status).current_state).to eq(:unapproved)
12
- expect(namespaced).to respond_to(:review_unapproved?)
13
- expect(namespaced).to be_review_unapproved
14
-
15
- expect(namespaced.aasm(:car).current_state).to eq(:unsold)
16
- expect(namespaced).to respond_to(:car_unsold?)
17
- expect(namespaced).to be_car_unsold
18
- end
19
-
20
- it 'allows transitions to other states' do
21
- expect(namespaced).to respond_to(:approve)
22
- expect(namespaced).to respond_to(:approve!)
23
- namespaced.approve!
24
- expect(namespaced).to respond_to(:approved?)
25
- expect(namespaced).to be_approved
26
-
27
- expect(namespaced).to respond_to(:approve_review)
28
- expect(namespaced).to respond_to(:approve_review!)
29
- namespaced.approve_review!
30
- expect(namespaced).to respond_to(:review_approved?)
31
- expect(namespaced).to be_review_approved
32
-
33
- expect(namespaced).to respond_to(:sell_car)
34
- expect(namespaced).to respond_to(:sell_car!)
35
- namespaced.sell_car!
36
- expect(namespaced).to respond_to(:car_sold?)
37
- expect(namespaced).to be_car_sold
38
- end
39
-
40
- it 'denies transitions to other states' do
41
- expect {namespaced.unapprove}.to raise_error(AASM::InvalidTransition)
42
- expect {namespaced.unapprove!}.to raise_error(AASM::InvalidTransition)
43
- namespaced.approve
44
- expect {namespaced.approve}.to raise_error(AASM::InvalidTransition)
45
- expect {namespaced.approve!}.to raise_error(AASM::InvalidTransition)
46
- namespaced.unapprove
47
-
48
- expect {namespaced.unapprove_review}.to raise_error(AASM::InvalidTransition)
49
- expect {namespaced.unapprove_review!}.to raise_error(AASM::InvalidTransition)
50
- namespaced.approve_review
51
- expect {namespaced.approve_review}.to raise_error(AASM::InvalidTransition)
52
- expect {namespaced.approve_review!}.to raise_error(AASM::InvalidTransition)
53
- namespaced.unapprove_review
54
-
55
- expect {namespaced.return_car}.to raise_error(AASM::InvalidTransition)
56
- expect {namespaced.return_car!}.to raise_error(AASM::InvalidTransition)
57
- namespaced.sell_car
58
- expect {namespaced.sell_car}.to raise_error(AASM::InvalidTransition)
59
- expect {namespaced.sell_car!}.to raise_error(AASM::InvalidTransition)
60
- namespaced.return_car
61
- end
62
-
63
- it 'defines constants for each state name' do
64
- expect(NamespacedMultipleExample::STATE_UNAPPROVED).to eq(:unapproved)
65
- expect(NamespacedMultipleExample::STATE_APPROVED).to eq(:approved)
66
-
67
- expect(NamespacedMultipleExample::STATE_REVIEW_UNAPPROVED).to eq(:unapproved)
68
- expect(NamespacedMultipleExample::STATE_REVIEW_APPROVED).to eq(:approved)
69
-
70
- expect(NamespacedMultipleExample::STATE_CAR_UNSOLD).to eq(:unsold)
71
- expect(NamespacedMultipleExample::STATE_CAR_SOLD).to eq(:sold)
72
- end
73
-
74
-
75
- end
@@ -1,12 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "the new dsl" do
4
-
5
- let(:process) {ProcessWithNewDsl.new}
6
-
7
- it 'should not conflict with other event or state methods' do
8
- expect {ProcessWithNewDsl.state}.to raise_error(RuntimeError, "wrong state method")
9
- expect {ProcessWithNewDsl.event}.to raise_error(RuntimeError, "wrong event method")
10
- end
11
-
12
- end
@@ -1,94 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe 'warns when overrides a method' do
4
- before do
5
- AASM::Configuration.hide_warnings = false
6
- end
7
-
8
- after do
9
- AASM::Configuration.hide_warnings = true
10
- end
11
-
12
- module Clumsy
13
- def self.included base
14
- base.send :include, AASM
15
-
16
- base.aasm do
17
- state :valid
18
- event(:save) { }
19
- end
20
- end
21
- end
22
-
23
- module WithEnumBase
24
- def self.included base
25
- base.send :include, AASM
26
- base.instance_eval do
27
- def defined_enums
28
- { 'state' => { 'valid' => 0, 'invalid' => 1 } }
29
- end
30
- end
31
- base.aasm enum: true do
32
- state :valid
33
- event(:save) { }
34
- end
35
- end
36
- end
37
-
38
- describe 'state' do
39
- let(:base_klass) do
40
- Class.new do
41
- def valid?; end
42
- end
43
- end
44
-
45
- subject { base_klass.send :include, Clumsy }
46
-
47
- it 'should log to warn' do
48
- expect_any_instance_of(Logger).to receive(:warn).with(": overriding method 'valid?'!")
49
- subject
50
- end
51
- end
52
-
53
- describe 'enum' do
54
- let(:enum_base_klass) do
55
- Class.new do
56
- def valid?; end
57
- end
58
- end
59
-
60
- subject { enum_base_klass.send :include, WithEnumBase }
61
-
62
- it 'should not log to warn' do
63
- expect_any_instance_of(Logger).to receive(:warn).never
64
- subject
65
- end
66
- end
67
-
68
- describe 'event' do
69
- context 'may?' do
70
- let(:base_klass) do
71
- Class.new do
72
- def may_save?; end
73
- def save!; end
74
- def save; end
75
- end
76
- end
77
-
78
- subject { base_klass.send :include, Clumsy }
79
-
80
- it 'should log to warn' do
81
- expect_any_instance_of(Logger).to receive(:warn).exactly(3).times do |logger, message|
82
- expect(
83
- [
84
- ": overriding method 'may_save?'!",
85
- ": overriding method 'save!'!",
86
- ": overriding method 'save'!"
87
- ]
88
- ).to include(message)
89
- end
90
- subject
91
- end
92
- end
93
- end
94
- end