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,29 +0,0 @@
1
- class SilentPersistor < ActiveRecord::Base
2
- include AASM
3
- aasm :column => :status, :whiny_persistence => false do
4
- state :sleeping, :initial => true
5
- state :running
6
- event :run do
7
- transitions :to => :running, :from => :sleeping
8
- end
9
- event :sleep do
10
- transitions :to => :sleeping, :from => :running
11
- end
12
- end
13
- validates_presence_of :name
14
- end
15
-
16
- class MultipleSilentPersistor < ActiveRecord::Base
17
- include AASM
18
- aasm :left, :column => :status, :whiny_persistence => false do
19
- state :sleeping, :initial => true
20
- state :running
21
- event :run do
22
- transitions :to => :running, :from => :sleeping
23
- end
24
- event :sleep do
25
- transitions :to => :sleeping, :from => :running
26
- end
27
- end
28
- validates_presence_of :name
29
- end
@@ -1,32 +0,0 @@
1
- class SimpleNewDsl < ActiveRecord::Base
2
- include AASM
3
- aasm :column => :status
4
- aasm do
5
- state :unknown_scope, :another_unknown_scope
6
- state :new
7
- end
8
- end
9
-
10
- class MultipleSimpleNewDsl < ActiveRecord::Base
11
- include AASM
12
- aasm :left, :column => :status
13
- aasm :left do
14
- state :unknown_scope, :another_unknown_scope
15
- state :new
16
- end
17
- end
18
-
19
- class AbstractClassDsl < ActiveRecord::Base
20
- include AASM
21
-
22
- self.abstract_class = true
23
-
24
- aasm :column => :status
25
- aasm do
26
- state :unknown_scope, :another_unknown_scope
27
- state :new
28
- end
29
- end
30
-
31
- class ImplementedAbstractClassDsl < AbstractClassDsl
32
- end
@@ -1,29 +0,0 @@
1
- class Thief < ActiveRecord::Base
2
- if ActiveRecord::VERSION::MAJOR >= 3
3
- self.table_name = 'thieves'
4
- else
5
- set_table_name "thieves"
6
- end
7
- include AASM
8
- aasm do
9
- state :rich
10
- state :jailed
11
- initial_state Proc.new {|thief| thief.skilled ? :rich : :jailed }
12
- end
13
- attr_accessor :skilled, :aasm_state
14
- end
15
-
16
- class MultipleThief < ActiveRecord::Base
17
- if ActiveRecord::VERSION::MAJOR >= 3
18
- self.table_name = 'multiple_thieves'
19
- else
20
- set_table_name "multiple_thieves"
21
- end
22
- include AASM
23
- aasm :left, :column => :aasm_state do
24
- state :rich
25
- state :jailed
26
- initial_state Proc.new {|thief| thief.skilled ? :rich : :jailed }
27
- end
28
- attr_accessor :skilled, :aasm_state
29
- end
@@ -1,124 +0,0 @@
1
- class Transactor < ActiveRecord::Base
2
-
3
- belongs_to :worker
4
-
5
- include AASM
6
- aasm :column => :status do
7
- state :sleeping, :initial => true
8
- state :running, :before_enter => :start_worker, :after_enter => :fail
9
-
10
- event :run do
11
- transitions :to => :running, :from => :sleeping
12
- end
13
- end
14
-
15
- private
16
-
17
- def start_worker
18
- worker.update_attribute(:status, 'running')
19
- end
20
-
21
- def fail
22
- raise StandardError.new('failed on purpose')
23
- end
24
-
25
- end
26
-
27
- class NoLockTransactor < ActiveRecord::Base
28
-
29
- belongs_to :worker
30
-
31
- include AASM
32
-
33
- aasm :column => :status do
34
- state :sleeping, :initial => true
35
- state :running
36
-
37
- event :run do
38
- transitions :to => :running, :from => :sleeping
39
- end
40
- end
41
- end
42
-
43
- class LockTransactor < ActiveRecord::Base
44
-
45
- belongs_to :worker
46
-
47
- include AASM
48
-
49
- aasm :column => :status, requires_lock: true do
50
- state :sleeping, :initial => true
51
- state :running
52
-
53
- event :run do
54
- transitions :to => :running, :from => :sleeping
55
- end
56
- end
57
- end
58
-
59
- class LockNoWaitTransactor < ActiveRecord::Base
60
-
61
- belongs_to :worker
62
-
63
- include AASM
64
-
65
- aasm :column => :status, requires_lock: 'FOR UPDATE NOWAIT' do
66
- state :sleeping, :initial => true
67
- state :running
68
-
69
- event :run do
70
- transitions :to => :running, :from => :sleeping
71
- end
72
- end
73
- end
74
-
75
- class NoTransactor < ActiveRecord::Base
76
-
77
- belongs_to :worker
78
-
79
- include AASM
80
- aasm :column => :status, use_transactions: false do
81
- state :sleeping, :initial => true
82
- state :running, :before_enter => :start_worker, :after_enter => :fail
83
-
84
- event :run do
85
- transitions :to => :running, :from => :sleeping
86
- end
87
- end
88
-
89
- private
90
-
91
- def start_worker
92
- worker.update_attribute(:status, 'running')
93
- end
94
-
95
- def fail
96
- raise StandardError.new('failed on purpose')
97
- end
98
- end
99
-
100
- class MultipleTransactor < ActiveRecord::Base
101
-
102
- belongs_to :worker
103
-
104
- include AASM
105
- aasm :left, :column => :status do
106
- state :sleeping, :initial => true
107
- state :running, :before_enter => :start_worker, :after_enter => :fail
108
-
109
- event :run do
110
- transitions :to => :running, :from => :sleeping
111
- end
112
- end
113
-
114
- private
115
-
116
- def start_worker
117
- worker.update_attribute(:status, 'running')
118
- end
119
-
120
- def fail
121
- raise StandardError.new('failed on purpose')
122
- end
123
-
124
- end
@@ -1,6 +0,0 @@
1
- class Transient < ActiveRecord::Base
2
- def aasm_write_state_without_persistence(state)
3
- "fum"
4
- end
5
- include AASM
6
- end
@@ -1,118 +0,0 @@
1
- class Validator < ActiveRecord::Base
2
- attr_accessor :after_all_transactions_performed,
3
- :after_transaction_performed_on_fail,
4
- :after_transaction_performed_on_run,
5
- :before_all_transactions_performed,
6
- :before_transaction_performed_on_fail,
7
- :before_transaction_performed_on_run,
8
- :invalid
9
-
10
- validate do |model|
11
- errors.add(:validator, "invalid") if invalid
12
- end
13
-
14
- include AASM
15
-
16
- aasm :column => :status, :whiny_persistence => true do
17
- before_all_transactions :before_all_transactions
18
- after_all_transactions :after_all_transactions
19
-
20
- state :sleeping, :initial => true
21
- state :running
22
- state :failed, :after_enter => :fail
23
-
24
- event :run, :after_commit => :change_name! do
25
- after_transaction do
26
- @after_transaction_performed_on_run = true
27
- end
28
-
29
- before_transaction do
30
- @before_transaction_performed_on_run = true
31
- end
32
-
33
- transitions :to => :running, :from => :sleeping
34
- end
35
-
36
- event :sleep do
37
- after_commit do |name|
38
- change_name_on_sleep name
39
- end
40
- transitions :to => :sleeping, :from => :running
41
- end
42
-
43
- event :fail do
44
- after_transaction do
45
- @after_transaction_performed_on_fail = true
46
- end
47
-
48
- before_transaction do
49
- @before_transaction_performed_on_fail = true
50
- end
51
-
52
- transitions :to => :failed, :from => [:sleeping, :running]
53
- end
54
- end
55
-
56
- validates_presence_of :name
57
-
58
- def change_name!
59
- self.name = "name changed"
60
- save!
61
- end
62
-
63
- def change_name_on_sleep name
64
- self.name = name
65
- save!
66
- end
67
-
68
- def fail
69
- raise StandardError.new('failed on purpose')
70
- end
71
-
72
- def after_all_transactions
73
- @after_all_transactions_performed = true
74
- end
75
-
76
- def before_all_transactions
77
- @before_all_transactions_performed = true
78
- end
79
- end
80
-
81
- class MultipleValidator < ActiveRecord::Base
82
-
83
- include AASM
84
- aasm :left, :column => :status, :whiny_persistence => true do
85
- state :sleeping, :initial => true
86
- state :running
87
- state :failed, :after_enter => :fail
88
-
89
- event :run, :after_commit => :change_name! do
90
- transitions :to => :running, :from => :sleeping
91
- end
92
- event :sleep do
93
- after_commit do |name|
94
- change_name_on_sleep name
95
- end
96
- transitions :to => :sleeping, :from => :running
97
- end
98
- event :fail do
99
- transitions :to => :failed, :from => [:sleeping, :running]
100
- end
101
- end
102
-
103
- validates_presence_of :name
104
-
105
- def change_name!
106
- self.name = "name changed"
107
- save!
108
- end
109
-
110
- def change_name_on_sleep name
111
- self.name = name
112
- save!
113
- end
114
-
115
- def fail
116
- raise StandardError.new('failed on purpose')
117
- end
118
- end
@@ -1,39 +0,0 @@
1
- class WithEnum < ActiveRecord::Base
2
- include AASM
3
-
4
- # Fake this column for testing purposes
5
- attr_accessor :aasm_state
6
-
7
- def self.test
8
- {}
9
- end
10
-
11
- aasm :enum => :test do
12
- state :opened
13
- state :closed
14
-
15
- event :view do
16
- transitions :to => :read, :from => [:needs_attention]
17
- end
18
- end
19
- end
20
-
21
- class MultipleWithEnum < ActiveRecord::Base
22
- include AASM
23
-
24
- # Fake this column for testing purposes
25
- attr_accessor :aasm_state
26
-
27
- def self.test
28
- {}
29
- end
30
-
31
- aasm :left, :enum => :test do
32
- state :opened
33
- state :closed
34
-
35
- event :view do
36
- transitions :to => :read, :from => [:needs_attention]
37
- end
38
- end
39
- end
@@ -1,38 +0,0 @@
1
- class WithEnumWithoutColumn < ActiveRecord::Base
2
- include AASM
3
-
4
- if ActiveRecord::VERSION::MAJOR >= 4 && ActiveRecord::VERSION::MINOR >= 1 # won't work with Rails <= 4.1
5
- enum status: {
6
- opened: 0,
7
- closed: 1
8
- }
9
- end
10
-
11
- aasm :column => :status do
12
- state :closed, initial: true
13
- state :opened
14
-
15
- event :view do
16
- transitions :to => :opened, :from => :closed
17
- end
18
- end
19
- end
20
-
21
- class MultipleWithEnumWithoutColumn < ActiveRecord::Base
22
- include AASM
23
- if ActiveRecord::VERSION::MAJOR >= 4 && ActiveRecord::VERSION::MINOR >= 1 # won't work with Rails <= 4.1
24
- enum status: {
25
- opened: 0,
26
- closed: 1
27
- }
28
- end
29
-
30
- aasm :left, :column => :status do
31
- state :closed, initial: true
32
- state :opened
33
-
34
- event :view do
35
- transitions :to => :opened, :from => :closed
36
- end
37
- end
38
- end
@@ -1,31 +0,0 @@
1
- class WithFalseEnum < ActiveRecord::Base
2
- include AASM
3
-
4
- # Fake this column for testing purposes
5
- attr_accessor :aasm_state
6
-
7
- aasm :enum => false do
8
- state :opened
9
- state :closed
10
-
11
- event :view do
12
- transitions :to => :read, :from => [:needs_attention]
13
- end
14
- end
15
- end
16
-
17
- class MultipleWithFalseEnum < ActiveRecord::Base
18
- include AASM
19
-
20
- # Fake this column for testing purposes
21
- attr_accessor :aasm_state
22
-
23
- aasm :left, :enum => false do
24
- state :opened
25
- state :closed
26
-
27
- event :view do
28
- transitions :to => :read, :from => [:needs_attention]
29
- end
30
- end
31
- end
@@ -1,39 +0,0 @@
1
- class WithTrueEnum < ActiveRecord::Base
2
- include AASM
3
-
4
- # Fake this column for testing purposes
5
- attr_accessor :aasm_state
6
-
7
- def value
8
- 'value'
9
- end
10
-
11
- aasm :enum => true do
12
- state :opened
13
- state :closed
14
-
15
- event :view do
16
- transitions :to => :read, :from => [:needs_attention]
17
- end
18
- end
19
- end
20
-
21
- class MultipleWithTrueEnum < ActiveRecord::Base
22
- include AASM
23
-
24
- # Fake this column for testing purposes
25
- attr_accessor :aasm_state
26
-
27
- def value
28
- 'value'
29
- end
30
-
31
- aasm :left, :enum => true do
32
- state :opened
33
- state :closed
34
-
35
- event :view do
36
- transitions :to => :read, :from => [:needs_attention]
37
- end
38
- end
39
- end
@@ -1,3 +0,0 @@
1
- class Work < ActiveRecord::Base
2
- include AASM
3
- end
@@ -1,2 +0,0 @@
1
- class Worker < ActiveRecord::Base
2
- end
@@ -1,6 +0,0 @@
1
- class Writer < ActiveRecord::Base
2
- def aasm_write_state(state)
3
- "fo"
4
- end
5
- include AASM
6
- end
@@ -1,25 +0,0 @@
1
- class BasicTwoStateMachinesExample
2
- include AASM
3
-
4
- aasm :search do
5
- state :initialised, :initial => true
6
- state :queried
7
- state :requested
8
-
9
- event :query do
10
- transitions :from => [:initialised, :requested], :to => :queried
11
- end
12
- event :request do
13
- transitions :from => :queried, :to => :requested
14
- end
15
- end
16
-
17
- aasm :sync do
18
- state :unsynced, :initial => true
19
- state :synced
20
-
21
- event :sync do
22
- transitions :from => :unsynced, :to => :synced
23
- end
24
- end
25
- end
@@ -1,98 +0,0 @@
1
- module Callbacks
2
- class Basic
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
- before_all_events :before_all_events
22
- after_all_events :after_all_events
23
- ensure_on_all_events :ensure_on_all_events
24
- after_all_transitions :after_all_transitions
25
-
26
- state :open, :initial => true,
27
- :before_enter => :before_enter_open,
28
- :enter => :enter_open,
29
- :after_enter => :after_enter_open,
30
- :before_exit => :before_exit_open,
31
- :exit => :exit_open,
32
- :after_exit => :after_exit_open
33
-
34
- state :closed,
35
- :before_enter => :before_enter_closed,
36
- :enter => :enter_closed,
37
- :after_enter => :after_enter_closed,
38
- :before_exit => :before_exit_closed,
39
- :exit => :exit_closed,
40
- :after_exit => :after_exit_closed
41
-
42
- event :close,
43
- :before => :before_event,
44
- :after => :after_event,
45
- :guard => :event_guard,
46
- :before_success => :event_before_success,
47
- :ensure => :ensure_event do
48
- transitions :to => :closed, :from => [:open],
49
- :guard => :transition_guard,
50
- :after => :after_transition,
51
- :success => :success_transition
52
- end
53
-
54
- event :open, :before => :before_event, :after => :after_event do
55
- transitions :to => :open, :from => :closed
56
- end
57
- end
58
-
59
- def log(text)
60
- @data << text
61
- puts text if @log
62
- end
63
-
64
- def aasm_write_state(*args); log('aasm_write_state'); true; end
65
- def before_enter_open; log('before_enter_open'); end
66
- def enter_open; log('enter_open'); end
67
- def before_exit_open; log('before_exit_open'); end
68
- def after_enter_open; log('after_enter_open'); end
69
- def exit_open; log('exit_open'); end
70
- def after_exit_open; log('after_exit_open'); end
71
-
72
- def before_enter_closed; log('before_enter_closed'); end
73
- def enter_closed; log('enter_closed'); end
74
- def before_exit_closed; log('before_exit_closed'); end
75
- def exit_closed; log('exit_closed'); end
76
- def after_enter_closed; log('after_enter_closed'); end
77
- def after_exit_closed; log('after_exit_closed'); end
78
-
79
- def event_guard; log('event_guard'); !@fail_event_guard; end
80
- def transition_guard; log('transition_guard'); !@fail_transition_guard; end
81
-
82
- def event_before_success; log('event_before_success'); end
83
-
84
- def after_transition; log('after_transition'); end
85
- def after_all_transitions; log('after_all_transitions'); end
86
-
87
- def before_all_events; log('before_all_events') end
88
- def before_event; log('before_event'); end
89
- def after_event; log('after_event'); end
90
- def after_all_events; log('after_all_events'); end
91
-
92
- def after_transition; log('after_transition'); end
93
- def success_transition; log('transition_success'); end
94
-
95
- def ensure_event; log('ensure'); end
96
- def ensure_on_all_events; log('ensure'); end
97
- end
98
- end