aasm 5.0.8 → 5.5.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 (230) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +108 -17
  3. data/lib/aasm/base.rb +44 -12
  4. data/lib/aasm/configuration.rb +3 -0
  5. data/lib/aasm/core/event.rb +12 -6
  6. data/lib/aasm/core/invokers/class_invoker.rb +1 -1
  7. data/lib/aasm/core/invokers/literal_invoker.rb +3 -1
  8. data/lib/aasm/core/state.rb +6 -5
  9. data/lib/aasm/core/transition.rb +1 -1
  10. data/lib/aasm/dsl_helper.rb +24 -22
  11. data/lib/aasm/errors.rb +1 -0
  12. data/lib/aasm/instance_base.rb +15 -4
  13. data/lib/aasm/localizer.rb +13 -3
  14. data/lib/aasm/persistence/active_record_persistence.rb +18 -0
  15. data/lib/aasm/persistence/base.rb +13 -2
  16. data/lib/aasm/persistence/orm.rb +23 -19
  17. data/lib/aasm/version.rb +1 -1
  18. data/lib/aasm.rb +0 -2
  19. data/lib/generators/aasm/orm_helpers.rb +1 -1
  20. data/lib/generators/active_record/templates/migration.rb +1 -1
  21. metadata +9 -397
  22. data/.document +0 -6
  23. data/.github/ISSUE_TEMPLATE/bug_report.md +0 -27
  24. data/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  25. data/.gitignore +0 -20
  26. data/.travis.yml +0 -100
  27. data/API +0 -34
  28. data/Appraisals +0 -71
  29. data/CHANGELOG.md +0 -431
  30. data/CODE_OF_CONDUCT.md +0 -13
  31. data/CONTRIBUTING.md +0 -24
  32. data/Dockerfile +0 -44
  33. data/Gemfile +0 -6
  34. data/Gemfile.lock_old +0 -151
  35. data/HOWTO +0 -12
  36. data/PLANNED_CHANGES.md +0 -11
  37. data/README_FROM_VERSION_3_TO_4.md +0 -240
  38. data/Rakefile +0 -31
  39. data/TESTING.md +0 -25
  40. data/aasm.gemspec +0 -37
  41. data/callbacks.txt +0 -51
  42. data/docker-compose.yml +0 -40
  43. data/gemfiles/norails.gemfile +0 -10
  44. data/gemfiles/rails_3.2.gemfile +0 -14
  45. data/gemfiles/rails_4.2.gemfile +0 -16
  46. data/gemfiles/rails_4.2_mongoid_5.gemfile +0 -11
  47. data/gemfiles/rails_4.2_nobrainer.gemfile +0 -9
  48. data/gemfiles/rails_5.0.gemfile +0 -13
  49. data/gemfiles/rails_5.0_nobrainer.gemfile +0 -9
  50. data/gemfiles/rails_5.1.gemfile +0 -13
  51. data/gemfiles/rails_5.2.gemfile +0 -13
  52. data/spec/database.rb +0 -59
  53. data/spec/database.yml +0 -3
  54. data/spec/en.yml +0 -12
  55. data/spec/en_deprecated_style.yml +0 -10
  56. data/spec/generators/active_record_generator_spec.rb +0 -53
  57. data/spec/generators/mongoid_generator_spec.rb +0 -31
  58. data/spec/generators/no_brainer_generator_spec.rb +0 -29
  59. data/spec/models/active_record/basic_active_record_two_state_machines_example.rb +0 -25
  60. data/spec/models/active_record/complex_active_record_example.rb +0 -37
  61. data/spec/models/active_record/derivate_new_dsl.rb +0 -7
  62. data/spec/models/active_record/false_state.rb +0 -35
  63. data/spec/models/active_record/gate.rb +0 -39
  64. data/spec/models/active_record/instance_level_skip_validation_example.rb +0 -19
  65. data/spec/models/active_record/invalid_persistor.rb +0 -29
  66. data/spec/models/active_record/localizer_test_model.rb +0 -34
  67. data/spec/models/active_record/no_direct_assignment.rb +0 -21
  68. data/spec/models/active_record/no_scope.rb +0 -21
  69. data/spec/models/active_record/persisted_state.rb +0 -12
  70. data/spec/models/active_record/person.rb +0 -23
  71. data/spec/models/active_record/provided_and_persisted_state.rb +0 -24
  72. data/spec/models/active_record/reader.rb +0 -7
  73. data/spec/models/active_record/readme_job.rb +0 -21
  74. data/spec/models/active_record/silent_persistor.rb +0 -29
  75. data/spec/models/active_record/simple_new_dsl.rb +0 -32
  76. data/spec/models/active_record/thief.rb +0 -29
  77. data/spec/models/active_record/transactor.rb +0 -124
  78. data/spec/models/active_record/transient.rb +0 -6
  79. data/spec/models/active_record/validator.rb +0 -118
  80. data/spec/models/active_record/with_enum.rb +0 -39
  81. data/spec/models/active_record/with_enum_without_column.rb +0 -38
  82. data/spec/models/active_record/with_false_enum.rb +0 -31
  83. data/spec/models/active_record/with_true_enum.rb +0 -39
  84. data/spec/models/active_record/work.rb +0 -3
  85. data/spec/models/active_record/worker.rb +0 -2
  86. data/spec/models/active_record/writer.rb +0 -6
  87. data/spec/models/basic_two_state_machines_example.rb +0 -25
  88. data/spec/models/callbacks/basic.rb +0 -98
  89. data/spec/models/callbacks/basic_multiple.rb +0 -75
  90. data/spec/models/callbacks/guard_within_block.rb +0 -67
  91. data/spec/models/callbacks/guard_within_block_multiple.rb +0 -66
  92. data/spec/models/callbacks/multiple_transitions_transition_guard.rb +0 -66
  93. data/spec/models/callbacks/multiple_transitions_transition_guard_multiple.rb +0 -65
  94. data/spec/models/callbacks/private_method.rb +0 -44
  95. data/spec/models/callbacks/private_method_multiple.rb +0 -44
  96. data/spec/models/callbacks/with_args.rb +0 -62
  97. data/spec/models/callbacks/with_args_multiple.rb +0 -61
  98. data/spec/models/callbacks/with_state_arg.rb +0 -34
  99. data/spec/models/callbacks/with_state_arg_multiple.rb +0 -29
  100. data/spec/models/complex_example.rb +0 -222
  101. data/spec/models/conversation.rb +0 -93
  102. data/spec/models/default_state.rb +0 -12
  103. data/spec/models/double_definer.rb +0 -21
  104. data/spec/models/dynamoid/complex_dynamoid_example.rb +0 -37
  105. data/spec/models/dynamoid/dynamoid_multiple.rb +0 -18
  106. data/spec/models/dynamoid/dynamoid_simple.rb +0 -18
  107. data/spec/models/foo.rb +0 -106
  108. data/spec/models/foo_callback_multiple.rb +0 -45
  109. data/spec/models/guard_arguments_check.rb +0 -17
  110. data/spec/models/guard_with_params.rb +0 -24
  111. data/spec/models/guard_with_params_multiple.rb +0 -18
  112. data/spec/models/guardian.rb +0 -58
  113. data/spec/models/guardian_multiple.rb +0 -48
  114. data/spec/models/guardian_without_from_specified.rb +0 -18
  115. data/spec/models/initial_state_proc.rb +0 -31
  116. data/spec/models/mongoid/complex_mongoid_example.rb +0 -37
  117. data/spec/models/mongoid/invalid_persistor_mongoid.rb +0 -39
  118. data/spec/models/mongoid/mongoid_relationships.rb +0 -26
  119. data/spec/models/mongoid/no_scope_mongoid.rb +0 -21
  120. data/spec/models/mongoid/silent_persistor_mongoid.rb +0 -39
  121. data/spec/models/mongoid/simple_mongoid.rb +0 -23
  122. data/spec/models/mongoid/simple_new_dsl_mongoid.rb +0 -25
  123. data/spec/models/mongoid/validator_mongoid.rb +0 -100
  124. data/spec/models/multi_transitioner.rb +0 -34
  125. data/spec/models/multiple_transitions_that_differ_only_by_guard.rb +0 -31
  126. data/spec/models/namespaced_multiple_example.rb +0 -42
  127. data/spec/models/no_initial_state.rb +0 -25
  128. data/spec/models/nobrainer/complex_no_brainer_example.rb +0 -36
  129. data/spec/models/nobrainer/invalid_persistor_no_brainer.rb +0 -39
  130. data/spec/models/nobrainer/no_scope_no_brainer.rb +0 -21
  131. data/spec/models/nobrainer/nobrainer_relationships.rb +0 -25
  132. data/spec/models/nobrainer/silent_persistor_no_brainer.rb +0 -39
  133. data/spec/models/nobrainer/simple_new_dsl_nobrainer.rb +0 -25
  134. data/spec/models/nobrainer/simple_no_brainer.rb +0 -23
  135. data/spec/models/nobrainer/validator_no_brainer.rb +0 -98
  136. data/spec/models/not_auto_loaded/process.rb +0 -21
  137. data/spec/models/parametrised_event.rb +0 -42
  138. data/spec/models/parametrised_event_multiple.rb +0 -29
  139. data/spec/models/process_with_new_dsl.rb +0 -31
  140. data/spec/models/provided_state.rb +0 -24
  141. data/spec/models/redis/complex_redis_example.rb +0 -40
  142. data/spec/models/redis/redis_multiple.rb +0 -20
  143. data/spec/models/redis/redis_simple.rb +0 -20
  144. data/spec/models/sequel/complex_sequel_example.rb +0 -46
  145. data/spec/models/sequel/invalid_persistor.rb +0 -52
  146. data/spec/models/sequel/sequel_multiple.rb +0 -25
  147. data/spec/models/sequel/sequel_simple.rb +0 -26
  148. data/spec/models/sequel/silent_persistor.rb +0 -50
  149. data/spec/models/sequel/transactor.rb +0 -112
  150. data/spec/models/sequel/validator.rb +0 -93
  151. data/spec/models/sequel/worker.rb +0 -12
  152. data/spec/models/silencer.rb +0 -27
  153. data/spec/models/simple_custom_example.rb +0 -53
  154. data/spec/models/simple_example.rb +0 -23
  155. data/spec/models/simple_example_with_guard_args.rb +0 -17
  156. data/spec/models/simple_multiple_example.rb +0 -42
  157. data/spec/models/state_machine_with_failed_event.rb +0 -20
  158. data/spec/models/states_on_one_line_example.rb +0 -8
  159. data/spec/models/sub_class.rb +0 -41
  160. data/spec/models/sub_class_with_more_states.rb +0 -18
  161. data/spec/models/sub_classing.rb +0 -3
  162. data/spec/models/super_class.rb +0 -46
  163. data/spec/models/this_name_better_not_be_in_use.rb +0 -11
  164. data/spec/models/valid_state_name.rb +0 -23
  165. data/spec/spec_helper.rb +0 -36
  166. data/spec/spec_helpers/active_record.rb +0 -8
  167. data/spec/spec_helpers/dynamoid.rb +0 -35
  168. data/spec/spec_helpers/mongoid.rb +0 -26
  169. data/spec/spec_helpers/nobrainer.rb +0 -15
  170. data/spec/spec_helpers/redis.rb +0 -18
  171. data/spec/spec_helpers/remove_warnings.rb +0 -1
  172. data/spec/spec_helpers/sequel.rb +0 -7
  173. data/spec/unit/abstract_class_spec.rb +0 -27
  174. data/spec/unit/api_spec.rb +0 -100
  175. data/spec/unit/basic_two_state_machines_example_spec.rb +0 -10
  176. data/spec/unit/callback_multiple_spec.rb +0 -304
  177. data/spec/unit/callbacks_spec.rb +0 -521
  178. data/spec/unit/complex_example_spec.rb +0 -93
  179. data/spec/unit/complex_multiple_example_spec.rb +0 -115
  180. data/spec/unit/edge_cases_spec.rb +0 -16
  181. data/spec/unit/event_multiple_spec.rb +0 -73
  182. data/spec/unit/event_naming_spec.rb +0 -16
  183. data/spec/unit/event_spec.rb +0 -394
  184. data/spec/unit/exception_spec.rb +0 -11
  185. data/spec/unit/guard_arguments_check_spec.rb +0 -9
  186. data/spec/unit/guard_multiple_spec.rb +0 -60
  187. data/spec/unit/guard_spec.rb +0 -89
  188. data/spec/unit/guard_with_params_multiple_spec.rb +0 -10
  189. data/spec/unit/guard_with_params_spec.rb +0 -14
  190. data/spec/unit/guard_without_from_specified_spec.rb +0 -10
  191. data/spec/unit/initial_state_multiple_spec.rb +0 -15
  192. data/spec/unit/initial_state_spec.rb +0 -12
  193. data/spec/unit/inspection_multiple_spec.rb +0 -201
  194. data/spec/unit/inspection_spec.rb +0 -149
  195. data/spec/unit/invoker_spec.rb +0 -189
  196. data/spec/unit/invokers/base_invoker_spec.rb +0 -72
  197. data/spec/unit/invokers/class_invoker_spec.rb +0 -95
  198. data/spec/unit/invokers/literal_invoker_spec.rb +0 -86
  199. data/spec/unit/invokers/proc_invoker_spec.rb +0 -86
  200. data/spec/unit/localizer_spec.rb +0 -78
  201. data/spec/unit/memory_leak_spec.rb +0 -38
  202. data/spec/unit/multiple_transitions_that_differ_only_by_guard_spec.rb +0 -14
  203. data/spec/unit/namespaced_multiple_example_spec.rb +0 -75
  204. data/spec/unit/new_dsl_spec.rb +0 -12
  205. data/spec/unit/override_warning_spec.rb +0 -94
  206. data/spec/unit/persistence/active_record_persistence_multiple_spec.rb +0 -618
  207. data/spec/unit/persistence/active_record_persistence_spec.rb +0 -773
  208. data/spec/unit/persistence/dynamoid_persistence_multiple_spec.rb +0 -135
  209. data/spec/unit/persistence/dynamoid_persistence_spec.rb +0 -84
  210. data/spec/unit/persistence/mongoid_persistence_multiple_spec.rb +0 -200
  211. data/spec/unit/persistence/mongoid_persistence_spec.rb +0 -165
  212. data/spec/unit/persistence/no_brainer_persistence_multiple_spec.rb +0 -198
  213. data/spec/unit/persistence/no_brainer_persistence_spec.rb +0 -158
  214. data/spec/unit/persistence/redis_persistence_multiple_spec.rb +0 -88
  215. data/spec/unit/persistence/redis_persistence_spec.rb +0 -53
  216. data/spec/unit/persistence/sequel_persistence_multiple_spec.rb +0 -148
  217. data/spec/unit/persistence/sequel_persistence_spec.rb +0 -368
  218. data/spec/unit/readme_spec.rb +0 -41
  219. data/spec/unit/reloading_spec.rb +0 -15
  220. data/spec/unit/rspec_matcher_spec.rb +0 -88
  221. data/spec/unit/simple_custom_example_spec.rb +0 -39
  222. data/spec/unit/simple_example_spec.rb +0 -57
  223. data/spec/unit/simple_multiple_example_spec.rb +0 -91
  224. data/spec/unit/state_spec.rb +0 -89
  225. data/spec/unit/states_on_one_line_example_spec.rb +0 -16
  226. data/spec/unit/subclassing_multiple_spec.rb +0 -74
  227. data/spec/unit/subclassing_spec.rb +0 -46
  228. data/spec/unit/transition_spec.rb +0 -436
  229. data/test/minitest_helper.rb +0 -57
  230. data/test/unit/minitest_matcher_test.rb +0 -80
@@ -1,75 +0,0 @@
1
- module Callbacks
2
- class BasicMultiple
3
- include AASM
4
-
5
- def initialize(options={})
6
- @fail_event_guard = options[:fail_event_guard]
7
- @fail_transition_guard = options[:fail_transition_guard]
8
- @log = options[:log]
9
- reset_data
10
- end
11
-
12
- def reset_data
13
- @data = []
14
- end
15
-
16
- def data
17
- @data.join(' ')
18
- end
19
-
20
- aasm(:left) do
21
- state :open, :initial => true,
22
- :before_enter => :before_enter_open,
23
- :enter => :enter_open,
24
- :after_enter => :after_enter_open,
25
- :before_exit => :before_exit_open,
26
- :exit => :exit_open,
27
- :after_exit => :after_exit_open
28
-
29
- state :closed,
30
- :before_enter => :before_enter_closed,
31
- :enter => :enter_closed,
32
- :after_enter => :after_enter_closed,
33
- :before_exit => :before_exit_closed,
34
- :exit => :exit_closed,
35
- :after_exit => :after_exit_closed
36
-
37
- event :left_close, :before => :before_event, :after => :after_event, :guard => :event_guard do
38
- transitions :to => :closed, :from => [:open], :guard => :transition_guard, :after => :after_transition
39
- end
40
-
41
- event :left_open, :before => :before_event, :after => :after_event do
42
- transitions :to => :open, :from => :closed
43
- end
44
- end
45
-
46
- def log(text)
47
- @data << text
48
- puts text if @log
49
- end
50
-
51
- def aasm_write_state(*args); log("aasm_write_state(#{args.inspect})"); true; end
52
-
53
- def before_enter_open; log('before_enter_open'); end
54
- def enter_open; log('enter_open'); end
55
- def before_exit_open; log('before_exit_open'); end
56
- def after_enter_open; log('after_enter_open'); end
57
- def exit_open; log('exit_open'); end
58
- def after_exit_open; log('after_exit_open'); end
59
-
60
- def before_enter_closed; log('before_enter_closed'); end
61
- def enter_closed; log('enter_closed'); end
62
- def before_exit_closed; log('before_exit_closed'); end
63
- def exit_closed; log('exit_closed'); end
64
- def after_enter_closed; log('after_enter_closed'); end
65
- def after_exit_closed; log('after_exit_closed'); end
66
-
67
- def event_guard; log('event_guard'); !@fail_event_guard; end
68
- def transition_guard; log('transition_guard'); !@fail_transition_guard; end
69
-
70
- def after_transition; log('after_transition'); end
71
-
72
- def before_event; log('before_event'); end
73
- def after_event; log('after_event'); end
74
- end
75
- end
@@ -1,67 +0,0 @@
1
- module Callbacks
2
- class GuardWithinBlock
3
- include AASM
4
-
5
- def initialize(options={})
6
- @fail_event_guard = options[:fail_event_guard]
7
- @fail_transition_guard = options[:fail_transition_guard]
8
- @log = options[:log]
9
- end
10
-
11
- aasm do
12
- state :open, :initial => true,
13
- :before_enter => :before_enter_open,
14
- :enter => :enter_open,
15
- :after_enter => :after_enter_open,
16
- :before_exit => :before_exit_open,
17
- :exit => :exit_open,
18
- :after_exit => :after_exit_open
19
-
20
- state :closed,
21
- :before_enter => :before_enter_closed,
22
- :enter => :enter_closed,
23
- :after_enter => :after_enter_closed,
24
- :before_exit => :before_exit_closed,
25
- :exit => :exit_closed,
26
- :after_exit => :after_exit_closed
27
-
28
- event :close, :before => :before, :after => :after, :guard => :event_guard do
29
- transitions :to => :closed, :from => [:open], :after => :transitioning, :success => :success_transition do
30
- guard do
31
- transition_guard
32
- end
33
- end
34
- end
35
-
36
- event :open, :before => :before, :after => :after do
37
- transitions :to => :open, :from => :closed
38
- end
39
- end
40
-
41
- def log(text)
42
- puts text if @log
43
- end
44
-
45
- def before_enter_open; log('before_enter_open'); end
46
- def enter_open; log('enter_open'); end
47
- def before_exit_open; log('before_exit_open'); end
48
- def after_enter_open; log('after_enter_open'); end
49
- def exit_open; log('exit_open'); end
50
- def after_exit_open; log('after_exit_open'); end
51
-
52
- def before_enter_closed; log('before_enter_closed'); end
53
- def enter_closed; log('enter_closed'); end
54
- def before_exit_closed; log('before_exit_closed'); end
55
- def exit_closed; log('exit_closed'); end
56
- def after_enter_closed; log('after_enter_closed'); end
57
- def after_exit_closed; log('after_exit_closed'); end
58
-
59
- def event_guard; log('event_guard'); !@fail_event_guard; end
60
- def transition_guard; log('transition_guard'); !@fail_transition_guard; end
61
- def transitioning; log('transitioning'); end
62
- def success_transition; log('success transition'); end
63
-
64
- def before; log('before'); end
65
- def after; log('after'); end
66
- end
67
- end
@@ -1,66 +0,0 @@
1
- module Callbacks
2
- class GuardWithinBlockMultiple
3
- include AASM
4
-
5
- def initialize(options={})
6
- @fail_event_guard = options[:fail_event_guard]
7
- @fail_transition_guard = options[:fail_transition_guard]
8
- @log = options[:log]
9
- end
10
-
11
- aasm(:left) do
12
- state :open, :initial => true,
13
- :before_enter => :before_enter_open,
14
- :enter => :enter_open,
15
- :after_enter => :after_enter_open,
16
- :before_exit => :before_exit_open,
17
- :exit => :exit_open,
18
- :after_exit => :after_exit_open
19
-
20
- state :closed,
21
- :before_enter => :before_enter_closed,
22
- :enter => :enter_closed,
23
- :after_enter => :after_enter_closed,
24
- :before_exit => :before_exit_closed,
25
- :exit => :exit_closed,
26
- :after_exit => :after_exit_closed
27
-
28
- event :close, :before => :before, :after => :after, :guard => :event_guard do
29
- transitions :to => :closed, :from => [:open], :after => :transitioning do
30
- guard do
31
- transition_guard
32
- end
33
- end
34
- end
35
-
36
- event :open, :before => :before, :after => :after do
37
- transitions :to => :open, :from => :closed
38
- end
39
- end
40
-
41
- def log(text)
42
- puts text if @log
43
- end
44
-
45
- def before_enter_open; log('before_enter_open'); end
46
- def enter_open; log('enter_open'); end
47
- def before_exit_open; log('before_exit_open'); end
48
- def after_enter_open; log('after_enter_open'); end
49
- def exit_open; log('exit_open'); end
50
- def after_exit_open; log('after_exit_open'); end
51
-
52
- def before_enter_closed; log('before_enter_closed'); end
53
- def enter_closed; log('enter_closed'); end
54
- def before_exit_closed; log('before_exit_closed'); end
55
- def exit_closed; log('exit_closed'); end
56
- def after_enter_closed; log('after_enter_closed'); end
57
- def after_exit_closed; log('after_exit_closed'); end
58
-
59
- def event_guard; log('event_guard'); !@fail_event_guard; end
60
- def transition_guard; log('transition_guard'); !@fail_transition_guard; end
61
- def transitioning; log('transitioning'); end
62
-
63
- def before; log('before'); end
64
- def after; log('after'); end
65
- end
66
- end
@@ -1,66 +0,0 @@
1
- module Callbacks
2
- class MultipleTransitionsTransitionGuard
3
- include AASM
4
-
5
- def initialize(options={})
6
- @fail_event_guard = options[:fail_event_guard]
7
- @fail_transition_guard = options[:fail_transition_guard]
8
- @log = options[:log]
9
- end
10
-
11
- aasm do
12
- state :open, :initial => true,
13
- :before_enter => :before_enter_open,
14
- :enter => :enter_open,
15
- :after_enter => :after_enter_open,
16
- :before_exit => :before_exit_open,
17
- :exit => :exit_open,
18
- :after_exit => :after_exit_open
19
-
20
- state :closed,
21
- :before_enter => :before_enter_closed,
22
- :enter => :enter_closed,
23
- :after_enter => :after_enter_closed,
24
- :before_exit => :before_exit_closed,
25
- :exit => :exit_closed,
26
- :after_exit => :after_exit_closed
27
-
28
- state :failed
29
-
30
- event :close, :before => :before, :after => :after, :guard => :event_guard do
31
- transitions :to => :closed, :from => [:open], :guard => :transition_guard, :after => :transitioning, :success => :success_transition
32
- transitions :to => :failed, :from => [:open]
33
- end
34
-
35
- event :open, :before => :before, :after => :after do
36
- transitions :to => :open, :from => :closed
37
- end
38
- end
39
-
40
- def log(text)
41
- puts text if @log
42
- end
43
-
44
- def before_enter_open; log('before_enter_open'); end
45
- def enter_open; log('enter_open'); end
46
- def before_exit_open; log('before_exit_open'); end
47
- def after_enter_open; log('after_enter_open'); end
48
- def exit_open; log('exit_open'); end
49
- def after_exit_open; log('after_exit_open'); end
50
-
51
- def before_enter_closed; log('before_enter_closed'); end
52
- def enter_closed; log('enter_closed'); end
53
- def before_exit_closed; log('before_exit_closed'); end
54
- def exit_closed; log('exit_closed'); end
55
- def after_enter_closed; log('after_enter_closed'); end
56
- def after_exit_closed; log('after_exit_closed'); end
57
-
58
- def event_guard; log('event_guard'); !@fail_event_guard; end
59
- def transition_guard; log('transition_guard'); !@fail_transition_guard; end
60
- def transitioning; log('transitioning'); end
61
- def success_transition; log('transition success'); end
62
-
63
- def before; log('before'); end
64
- def after; log('after'); end
65
- end
66
- end
@@ -1,65 +0,0 @@
1
- module Callbacks
2
- class MultipleTransitionsTransitionGuardMultiple
3
- include AASM
4
-
5
- def initialize(options={})
6
- @fail_event_guard = options[:fail_event_guard]
7
- @fail_transition_guard = options[:fail_transition_guard]
8
- @log = options[:log]
9
- end
10
-
11
- aasm(:left) do
12
- state :open, :initial => true,
13
- :before_enter => :before_enter_open,
14
- :enter => :enter_open,
15
- :after_enter => :after_enter_open,
16
- :before_exit => :before_exit_open,
17
- :exit => :exit_open,
18
- :after_exit => :after_exit_open
19
-
20
- state :closed,
21
- :before_enter => :before_enter_closed,
22
- :enter => :enter_closed,
23
- :after_enter => :after_enter_closed,
24
- :before_exit => :before_exit_closed,
25
- :exit => :exit_closed,
26
- :after_exit => :after_exit_closed
27
-
28
- state :failed
29
-
30
- event :close, :before => :before, :after => :after, :guard => :event_guard do
31
- transitions :to => :closed, :from => [:open], :guard => :transition_guard, :after => :transitioning
32
- transitions :to => :failed, :from => [:open]
33
- end
34
-
35
- event :open, :before => :before, :after => :after do
36
- transitions :to => :open, :from => :closed
37
- end
38
- end
39
-
40
- def log(text)
41
- puts text if @log
42
- end
43
-
44
- def before_enter_open; log('before_enter_open'); end
45
- def enter_open; log('enter_open'); end
46
- def before_exit_open; log('before_exit_open'); end
47
- def after_enter_open; log('after_enter_open'); end
48
- def exit_open; log('exit_open'); end
49
- def after_exit_open; log('after_exit_open'); end
50
-
51
- def before_enter_closed; log('before_enter_closed'); end
52
- def enter_closed; log('enter_closed'); end
53
- def before_exit_closed; log('before_exit_closed'); end
54
- def exit_closed; log('exit_closed'); end
55
- def after_enter_closed; log('after_enter_closed'); end
56
- def after_exit_closed; log('after_exit_closed'); end
57
-
58
- def event_guard; log('event_guard'); !@fail_event_guard; end
59
- def transition_guard; log('transition_guard'); !@fail_transition_guard; end
60
- def transitioning; log('transitioning'); end
61
-
62
- def before; log('before'); end
63
- def after; log('after'); end
64
- end
65
- end
@@ -1,44 +0,0 @@
1
- module Callbacks
2
- class PrivateMethod
3
- include AASM
4
-
5
- def initialize(options={})
6
- @fail_event_guard = options[:fail_event_guard]
7
- @fail_transition_guard = options[:fail_transition_guard]
8
- @log = options[:log]
9
- reset_data
10
- end
11
-
12
- def reset_data
13
- @data = []
14
- end
15
-
16
- def data
17
- @data.join(' ')
18
- end
19
-
20
- aasm do
21
- state :open, :initial => true
22
- state :closed
23
-
24
- event :close, :after => :after_event do
25
- transitions :to => :closed, :from => [:open]
26
- end
27
-
28
- event :open, :after => :after_event do
29
- transitions :to => :open, :from => :closed
30
- end
31
- end
32
-
33
- def log(text)
34
- @data << text
35
- puts text if @log
36
- end
37
-
38
- def aasm_write_state(*args); log('aasm_write_state'); true; end
39
-
40
- private
41
-
42
- def after_event; log('after_event'); end
43
- end
44
- end
@@ -1,44 +0,0 @@
1
- module Callbacks
2
- class PrivateMethodMultiple
3
- include AASM
4
-
5
- def initialize(options={})
6
- @fail_event_guard = options[:fail_event_guard]
7
- @fail_transition_guard = options[:fail_transition_guard]
8
- @log = options[:log]
9
- reset_data
10
- end
11
-
12
- def reset_data
13
- @data = []
14
- end
15
-
16
- def data
17
- @data.join(' ')
18
- end
19
-
20
- aasm(:left) do
21
- state :open, :initial => true
22
- state :closed
23
-
24
- event :close, :after => :after_event do
25
- transitions :to => :closed, :from => [:open]
26
- end
27
-
28
- event :open, :after => :after_event do
29
- transitions :to => :open, :from => :closed
30
- end
31
- end
32
-
33
- def log(text)
34
- @data << text
35
- puts text if @log
36
- end
37
-
38
- def aasm_write_state(*args); log('aasm_write_state'); true; end
39
-
40
- private
41
-
42
- def after_event; log('after_event'); end
43
- end
44
- end
@@ -1,62 +0,0 @@
1
- module Callbacks
2
- class WithArgs
3
- include AASM
4
-
5
- def initialize(options={})
6
- @log = options[:log]
7
- reset_data
8
- end
9
-
10
- def reset_data
11
- @data = []
12
- end
13
-
14
- def data
15
- @data.join(' ')
16
- end
17
-
18
- aasm do
19
- state :open, :initial => true,
20
- :before_enter => :before_enter_open,
21
- :after_enter => :after_enter_open,
22
- :before_exit => :before_exit_open,
23
- :after_exit => :after_exit_open
24
-
25
- state :closed,
26
- :before_enter => :before_enter_closed,
27
- :after_enter => :after_enter_closed,
28
- :before_exit => :before_exit_closed,
29
- :after_exit => :after_exit_closed
30
-
31
- event :close, :before => :before, :after => :after do
32
- transitions :to => :closed, :from => [:open], :after => :transition_proc, :success => :transition_success_proc
33
- end
34
-
35
- event :open, :before => :before, :after => :after do
36
- transitions :to => :open, :from => :closed
37
- end
38
- end
39
-
40
- def log(text)
41
- @data << text
42
- puts text if @log
43
- end
44
-
45
- def aasm_write_state(*args); log('aasm_write_state'); true; end
46
-
47
- def before_enter_open(*args); log("before_enter_open(#{args.map(&:inspect).join(',')})"); end
48
- def before_exit_open(*args); log("before_exit_open(#{args.map(&:inspect).join(',')})"); end
49
- def after_enter_open(*args); log("after_enter_open(#{args.map(&:inspect).join(',')})"); end
50
- def after_exit_open(*args); log("after_exit_open(#{args.map(&:inspect).join(',')})"); end
51
-
52
- def before_enter_closed(*args); log("before_enter_closed(#{args.map(&:inspect).join(',')})"); end
53
- def before_exit_closed(*args); log("before_enter_closed(#{args.map(&:inspect).join(',')})"); end
54
- def after_enter_closed(*args); log("after_enter_closed(#{args.map(&:inspect).join(',')})"); end
55
- def after_exit_closed(*args); log("after_exit_closed(#{args.map(&:inspect).join(',')})"); end
56
-
57
- def before(arg1, *args); log("before(#{arg1.inspect},#{args.map(&:inspect).join(',')})"); end
58
- def transition_proc(arg1, arg2); log("transition_proc(#{arg1.inspect},#{arg2.inspect})"); end
59
- def after(*args); log("after(#{args.map(&:inspect).join(',')})"); end
60
- def transition_success_proc(*args); log("transition_success(#{args.map(&:inspect).join(',')})"); end
61
- end
62
- end
@@ -1,61 +0,0 @@
1
- module Callbacks
2
- class WithArgsMultiple
3
- include AASM
4
-
5
- def initialize(options={})
6
- @log = options[:log]
7
- reset_data
8
- end
9
-
10
- def reset_data
11
- @data = []
12
- end
13
-
14
- def data
15
- @data.join(' ')
16
- end
17
-
18
- aasm(:left) do
19
- state :open, :initial => true,
20
- :before_enter => :before_enter_open,
21
- :after_enter => :after_enter_open,
22
- :before_exit => :before_exit_open,
23
- :after_exit => :after_exit_open
24
-
25
- state :closed,
26
- :before_enter => :before_enter_closed,
27
- :after_enter => :after_enter_closed,
28
- :before_exit => :before_exit_closed,
29
- :after_exit => :after_exit_closed
30
-
31
- event :close, :before => :before, :after => :after do
32
- transitions :to => :closed, :from => [:open], :after => :transition_proc
33
- end
34
-
35
- event :open, :before => :before, :after => :after do
36
- transitions :to => :open, :from => :closed
37
- end
38
- end
39
-
40
- def log(text)
41
- @data << text
42
- puts text if @log
43
- end
44
-
45
- def aasm_write_state(*args); log('aasm_write_state'); true; end
46
-
47
- def before_enter_open(*args); log("before_enter_open(#{args.map(&:inspect).join(',')})"); end
48
- def before_exit_open(*args); log("before_exit_open(#{args.map(&:inspect).join(',')})"); end
49
- def after_enter_open(*args); log("after_enter_open(#{args.map(&:inspect).join(',')})"); end
50
- def after_exit_open(*args); log("after_exit_open(#{args.map(&:inspect).join(',')})"); end
51
-
52
- def before_enter_closed(*args); log("before_enter_closed(#{args.map(&:inspect).join(',')})"); end
53
- def before_exit_closed(*args); log("before_enter_closed(#{args.map(&:inspect).join(',')})"); end
54
- def after_enter_closed(*args); log("after_enter_closed(#{args.map(&:inspect).join(',')})"); end
55
- def after_exit_closed(*args); log("after_exit_closed(#{args.map(&:inspect).join(',')})"); end
56
-
57
- def before(arg1, *args); log("before(#{arg1.inspect},#{args.map(&:inspect).join(',')})"); end
58
- def transition_proc(arg1, arg2); log("transition_proc(#{arg1.inspect},#{arg2.inspect})"); end
59
- def after(*args); log("after(#{args.map(&:inspect).join(',')})"); end
60
- end
61
- end
@@ -1,34 +0,0 @@
1
- module Callbacks
2
- class WithStateArg
3
-
4
- include AASM
5
-
6
- aasm do
7
- state :open, :initial => true
8
- state :closed
9
- state :out_to_lunch
10
-
11
- event :close, :before => :before_method, :after => :after_method, :before_success => :before_success_method, :success => :success_method3 do
12
- transitions :to => :closed, :from => [:open], :after => :transition_method, :success => :success_method
13
- transitions :to => :out_to_lunch, :from => [:open], :after => :transition_method2, :success => :success_method2
14
- end
15
- end
16
-
17
- def before_method(arg); end
18
-
19
- def before_success_method(arg); end
20
-
21
- def after_method(arg); end
22
-
23
- def transition_method(arg); end
24
-
25
- def transition_method2(arg); end
26
-
27
- def success_method(arg); end
28
-
29
- def success_method2(arg); end
30
-
31
- def success_method3(arg); end
32
-
33
- end
34
- end
@@ -1,29 +0,0 @@
1
- module Callbacks
2
- class WithStateArgMultiple
3
-
4
- include AASM
5
-
6
- aasm(:left) do
7
- state :open, :initial => true
8
- state :closed
9
- state :out_to_lunch
10
-
11
- event :close, :before => :before_method, :after => :after_method, :before_success => :before_success_method, :success => :success_method do
12
- transitions :to => :closed, :from => [:open], :after => :transition_method
13
- transitions :to => :out_to_lunch, :from => [:open], :after => :transition_method2
14
- end
15
- end
16
-
17
- def before_method(arg); end
18
-
19
- def before_success_method(arg); end
20
-
21
- def after_method(arg); end
22
-
23
- def transition_method(arg); end
24
-
25
- def transition_method2(arg); end
26
-
27
- def success_method(arg); end
28
- end
29
- end