aasm 5.3.0 → 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 (222) hide show
  1. checksums.yaml +4 -4
  2. data/lib/aasm/errors.rb +1 -0
  3. data/lib/aasm/instance_base.rb +4 -3
  4. data/lib/aasm/version.rb +1 -1
  5. metadata +3 -409
  6. data/.document +0 -6
  7. data/.github/ISSUE_TEMPLATE/bug_report.md +0 -27
  8. data/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  9. data/.github/workflows/build.yml +0 -100
  10. data/.gitignore +0 -20
  11. data/API +0 -34
  12. data/Appraisals +0 -51
  13. data/CHANGELOG.md +0 -464
  14. data/CODE_OF_CONDUCT.md +0 -13
  15. data/CONTRIBUTING.md +0 -24
  16. data/Dockerfile +0 -44
  17. data/Gemfile +0 -7
  18. data/Gemfile.lock_old +0 -151
  19. data/HOWTO +0 -12
  20. data/PLANNED_CHANGES.md +0 -11
  21. data/README_FROM_VERSION_3_TO_4.md +0 -240
  22. data/Rakefile +0 -31
  23. data/TESTING.md +0 -25
  24. data/aasm.gemspec +0 -37
  25. data/docker-compose.yml +0 -40
  26. data/gemfiles/norails.gemfile +0 -11
  27. data/gemfiles/rails_4.2.gemfile +0 -17
  28. data/gemfiles/rails_4.2_mongoid_5.gemfile +0 -12
  29. data/gemfiles/rails_4.2_nobrainer.gemfile +0 -10
  30. data/gemfiles/rails_5.2.gemfile +0 -14
  31. data/gemfiles/rails_6.0.gemfile +0 -14
  32. data/gemfiles/rails_6.1.gemfile +0 -14
  33. data/gemfiles/rails_7.0.gemfile +0 -14
  34. data/spec/database.rb +0 -57
  35. data/spec/database.yml +0 -3
  36. data/spec/en.yml +0 -9
  37. data/spec/generators/active_record_generator_spec.rb +0 -53
  38. data/spec/generators/mongoid_generator_spec.rb +0 -31
  39. data/spec/generators/no_brainer_generator_spec.rb +0 -29
  40. data/spec/localizer_test_model_deprecated_style.yml +0 -13
  41. data/spec/localizer_test_model_new_style.yml +0 -11
  42. data/spec/models/active_record/active_record_callback.rb +0 -93
  43. data/spec/models/active_record/basic_active_record_two_state_machines_example.rb +0 -25
  44. data/spec/models/active_record/complex_active_record_example.rb +0 -37
  45. data/spec/models/active_record/derivate_new_dsl.rb +0 -7
  46. data/spec/models/active_record/false_state.rb +0 -35
  47. data/spec/models/active_record/gate.rb +0 -39
  48. data/spec/models/active_record/instance_level_skip_validation_example.rb +0 -19
  49. data/spec/models/active_record/invalid_persistor.rb +0 -29
  50. data/spec/models/active_record/localizer_test_model.rb +0 -42
  51. data/spec/models/active_record/namespaced.rb +0 -16
  52. data/spec/models/active_record/no_direct_assignment.rb +0 -21
  53. data/spec/models/active_record/no_scope.rb +0 -21
  54. data/spec/models/active_record/persisted_state.rb +0 -12
  55. data/spec/models/active_record/person.rb +0 -23
  56. data/spec/models/active_record/provided_and_persisted_state.rb +0 -24
  57. data/spec/models/active_record/reader.rb +0 -7
  58. data/spec/models/active_record/readme_job.rb +0 -21
  59. data/spec/models/active_record/silent_persistor.rb +0 -29
  60. data/spec/models/active_record/simple_new_dsl.rb +0 -32
  61. data/spec/models/active_record/thief.rb +0 -29
  62. data/spec/models/active_record/timestamp_example.rb +0 -16
  63. data/spec/models/active_record/transactor.rb +0 -124
  64. data/spec/models/active_record/transient.rb +0 -6
  65. data/spec/models/active_record/validator.rb +0 -118
  66. data/spec/models/active_record/with_enum.rb +0 -39
  67. data/spec/models/active_record/with_enum_without_column.rb +0 -38
  68. data/spec/models/active_record/with_false_enum.rb +0 -31
  69. data/spec/models/active_record/with_true_enum.rb +0 -39
  70. data/spec/models/active_record/work.rb +0 -3
  71. data/spec/models/active_record/worker.rb +0 -2
  72. data/spec/models/active_record/writer.rb +0 -6
  73. data/spec/models/basic_two_state_machines_example.rb +0 -25
  74. data/spec/models/callbacks/basic.rb +0 -98
  75. data/spec/models/callbacks/basic_multiple.rb +0 -75
  76. data/spec/models/callbacks/guard_within_block.rb +0 -67
  77. data/spec/models/callbacks/guard_within_block_multiple.rb +0 -66
  78. data/spec/models/callbacks/multiple_transitions_transition_guard.rb +0 -66
  79. data/spec/models/callbacks/multiple_transitions_transition_guard_multiple.rb +0 -65
  80. data/spec/models/callbacks/private_method.rb +0 -44
  81. data/spec/models/callbacks/private_method_multiple.rb +0 -44
  82. data/spec/models/callbacks/with_args.rb +0 -62
  83. data/spec/models/callbacks/with_args_multiple.rb +0 -61
  84. data/spec/models/callbacks/with_state_arg.rb +0 -34
  85. data/spec/models/callbacks/with_state_arg_multiple.rb +0 -29
  86. data/spec/models/complex_example.rb +0 -222
  87. data/spec/models/conversation.rb +0 -93
  88. data/spec/models/default_state.rb +0 -12
  89. data/spec/models/double_definer.rb +0 -21
  90. data/spec/models/dynamoid/complex_dynamoid_example.rb +0 -37
  91. data/spec/models/dynamoid/dynamoid_multiple.rb +0 -18
  92. data/spec/models/dynamoid/dynamoid_simple.rb +0 -18
  93. data/spec/models/event_with_keyword_arguments.rb +0 -16
  94. data/spec/models/foo.rb +0 -106
  95. data/spec/models/foo_callback_multiple.rb +0 -45
  96. data/spec/models/guard_arguments_check.rb +0 -17
  97. data/spec/models/guard_with_params.rb +0 -24
  98. data/spec/models/guard_with_params_multiple.rb +0 -18
  99. data/spec/models/guardian.rb +0 -58
  100. data/spec/models/guardian_multiple.rb +0 -48
  101. data/spec/models/guardian_without_from_specified.rb +0 -18
  102. data/spec/models/initial_state_proc.rb +0 -31
  103. data/spec/models/mongoid/complex_mongoid_example.rb +0 -37
  104. data/spec/models/mongoid/invalid_persistor_mongoid.rb +0 -39
  105. data/spec/models/mongoid/mongoid_relationships.rb +0 -26
  106. data/spec/models/mongoid/no_scope_mongoid.rb +0 -21
  107. data/spec/models/mongoid/silent_persistor_mongoid.rb +0 -39
  108. data/spec/models/mongoid/simple_mongoid.rb +0 -23
  109. data/spec/models/mongoid/simple_new_dsl_mongoid.rb +0 -25
  110. data/spec/models/mongoid/timestamp_example_mongoid.rb +0 -20
  111. data/spec/models/mongoid/validator_mongoid.rb +0 -100
  112. data/spec/models/multi_transitioner.rb +0 -34
  113. data/spec/models/multiple_transitions_that_differ_only_by_guard.rb +0 -31
  114. data/spec/models/namespaced_multiple_example.rb +0 -42
  115. data/spec/models/no_initial_state.rb +0 -25
  116. data/spec/models/nobrainer/complex_no_brainer_example.rb +0 -36
  117. data/spec/models/nobrainer/invalid_persistor_no_brainer.rb +0 -39
  118. data/spec/models/nobrainer/no_scope_no_brainer.rb +0 -21
  119. data/spec/models/nobrainer/nobrainer_relationships.rb +0 -25
  120. data/spec/models/nobrainer/silent_persistor_no_brainer.rb +0 -39
  121. data/spec/models/nobrainer/simple_new_dsl_nobrainer.rb +0 -25
  122. data/spec/models/nobrainer/simple_no_brainer.rb +0 -23
  123. data/spec/models/nobrainer/validator_no_brainer.rb +0 -98
  124. data/spec/models/not_auto_loaded/process.rb +0 -21
  125. data/spec/models/parametrised_event.rb +0 -42
  126. data/spec/models/parametrised_event_multiple.rb +0 -29
  127. data/spec/models/process_with_new_dsl.rb +0 -31
  128. data/spec/models/provided_state.rb +0 -24
  129. data/spec/models/redis/complex_redis_example.rb +0 -40
  130. data/spec/models/redis/redis_multiple.rb +0 -20
  131. data/spec/models/redis/redis_simple.rb +0 -20
  132. data/spec/models/sequel/complex_sequel_example.rb +0 -46
  133. data/spec/models/sequel/invalid_persistor.rb +0 -52
  134. data/spec/models/sequel/sequel_multiple.rb +0 -25
  135. data/spec/models/sequel/sequel_simple.rb +0 -26
  136. data/spec/models/sequel/silent_persistor.rb +0 -50
  137. data/spec/models/sequel/transactor.rb +0 -112
  138. data/spec/models/sequel/validator.rb +0 -93
  139. data/spec/models/sequel/worker.rb +0 -12
  140. data/spec/models/silencer.rb +0 -27
  141. data/spec/models/simple_custom_example.rb +0 -53
  142. data/spec/models/simple_example.rb +0 -23
  143. data/spec/models/simple_example_with_guard_args.rb +0 -17
  144. data/spec/models/simple_multiple_example.rb +0 -42
  145. data/spec/models/state_machine_with_failed_event.rb +0 -20
  146. data/spec/models/states_on_one_line_example.rb +0 -8
  147. data/spec/models/sub_class.rb +0 -41
  148. data/spec/models/sub_class_with_more_states.rb +0 -18
  149. data/spec/models/sub_classing.rb +0 -3
  150. data/spec/models/super_class.rb +0 -46
  151. data/spec/models/this_name_better_not_be_in_use.rb +0 -11
  152. data/spec/models/timestamps_example.rb +0 -19
  153. data/spec/models/timestamps_with_named_machine_example.rb +0 -13
  154. data/spec/models/valid_state_name.rb +0 -23
  155. data/spec/spec_helper.rb +0 -41
  156. data/spec/spec_helpers/active_record.rb +0 -8
  157. data/spec/spec_helpers/dynamoid.rb +0 -39
  158. data/spec/spec_helpers/mongoid.rb +0 -26
  159. data/spec/spec_helpers/nobrainer.rb +0 -15
  160. data/spec/spec_helpers/redis.rb +0 -18
  161. data/spec/spec_helpers/remove_warnings.rb +0 -1
  162. data/spec/spec_helpers/sequel.rb +0 -7
  163. data/spec/unit/abstract_class_spec.rb +0 -27
  164. data/spec/unit/api_spec.rb +0 -104
  165. data/spec/unit/basic_two_state_machines_example_spec.rb +0 -10
  166. data/spec/unit/callback_multiple_spec.rb +0 -304
  167. data/spec/unit/callbacks_spec.rb +0 -551
  168. data/spec/unit/complex_example_spec.rb +0 -101
  169. data/spec/unit/complex_multiple_example_spec.rb +0 -115
  170. data/spec/unit/edge_cases_spec.rb +0 -16
  171. data/spec/unit/event_multiple_spec.rb +0 -73
  172. data/spec/unit/event_naming_spec.rb +0 -16
  173. data/spec/unit/event_spec.rb +0 -394
  174. data/spec/unit/event_with_keyword_arguments_spec.rb +0 -10
  175. data/spec/unit/exception_spec.rb +0 -11
  176. data/spec/unit/guard_arguments_check_spec.rb +0 -9
  177. data/spec/unit/guard_multiple_spec.rb +0 -60
  178. data/spec/unit/guard_spec.rb +0 -89
  179. data/spec/unit/guard_with_params_multiple_spec.rb +0 -10
  180. data/spec/unit/guard_with_params_spec.rb +0 -14
  181. data/spec/unit/guard_without_from_specified_spec.rb +0 -10
  182. data/spec/unit/initial_state_multiple_spec.rb +0 -15
  183. data/spec/unit/initial_state_spec.rb +0 -12
  184. data/spec/unit/inspection_multiple_spec.rb +0 -205
  185. data/spec/unit/inspection_spec.rb +0 -153
  186. data/spec/unit/invoker_spec.rb +0 -189
  187. data/spec/unit/invokers/base_invoker_spec.rb +0 -72
  188. data/spec/unit/invokers/class_invoker_spec.rb +0 -95
  189. data/spec/unit/invokers/literal_invoker_spec.rb +0 -86
  190. data/spec/unit/invokers/proc_invoker_spec.rb +0 -86
  191. data/spec/unit/localizer_spec.rb +0 -109
  192. data/spec/unit/memory_leak_spec.rb +0 -38
  193. data/spec/unit/multiple_transitions_that_differ_only_by_guard_spec.rb +0 -14
  194. data/spec/unit/namespaced_multiple_example_spec.rb +0 -75
  195. data/spec/unit/new_dsl_spec.rb +0 -12
  196. data/spec/unit/override_warning_spec.rb +0 -94
  197. data/spec/unit/persistence/active_record_persistence_multiple_spec.rb +0 -635
  198. data/spec/unit/persistence/active_record_persistence_spec.rb +0 -852
  199. data/spec/unit/persistence/dynamoid_persistence_multiple_spec.rb +0 -135
  200. data/spec/unit/persistence/dynamoid_persistence_spec.rb +0 -84
  201. data/spec/unit/persistence/mongoid_persistence_multiple_spec.rb +0 -200
  202. data/spec/unit/persistence/mongoid_persistence_spec.rb +0 -177
  203. data/spec/unit/persistence/no_brainer_persistence_multiple_spec.rb +0 -198
  204. data/spec/unit/persistence/no_brainer_persistence_spec.rb +0 -158
  205. data/spec/unit/persistence/redis_persistence_multiple_spec.rb +0 -88
  206. data/spec/unit/persistence/redis_persistence_spec.rb +0 -53
  207. data/spec/unit/persistence/sequel_persistence_multiple_spec.rb +0 -148
  208. data/spec/unit/persistence/sequel_persistence_spec.rb +0 -368
  209. data/spec/unit/readme_spec.rb +0 -41
  210. data/spec/unit/reloading_spec.rb +0 -15
  211. data/spec/unit/rspec_matcher_spec.rb +0 -88
  212. data/spec/unit/simple_custom_example_spec.rb +0 -39
  213. data/spec/unit/simple_example_spec.rb +0 -57
  214. data/spec/unit/simple_multiple_example_spec.rb +0 -91
  215. data/spec/unit/state_spec.rb +0 -105
  216. data/spec/unit/states_on_one_line_example_spec.rb +0 -16
  217. data/spec/unit/subclassing_multiple_spec.rb +0 -74
  218. data/spec/unit/subclassing_spec.rb +0 -46
  219. data/spec/unit/timestamps_spec.rb +0 -32
  220. data/spec/unit/transition_spec.rb +0 -436
  221. data/test/minitest_helper.rb +0 -61
  222. 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