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