aasm 4.12.3 → 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 (218) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +284 -119
  3. data/lib/aasm/aasm.rb +30 -27
  4. data/lib/aasm/base.rb +61 -11
  5. data/lib/aasm/configuration.rb +3 -0
  6. data/lib/aasm/core/event.rb +26 -30
  7. data/lib/aasm/core/invoker.rb +129 -0
  8. data/lib/aasm/core/invokers/base_invoker.rb +75 -0
  9. data/lib/aasm/core/invokers/class_invoker.rb +52 -0
  10. data/lib/aasm/core/invokers/literal_invoker.rb +49 -0
  11. data/lib/aasm/core/invokers/proc_invoker.rb +59 -0
  12. data/lib/aasm/core/state.rb +16 -14
  13. data/lib/aasm/core/transition.rb +8 -69
  14. data/lib/aasm/dsl_helper.rb +24 -22
  15. data/lib/aasm/errors.rb +5 -3
  16. data/lib/aasm/instance_base.rb +28 -5
  17. data/lib/aasm/localizer.rb +13 -3
  18. data/lib/aasm/persistence/active_record_persistence.rb +25 -5
  19. data/lib/aasm/persistence/base.rb +14 -3
  20. data/lib/aasm/persistence/core_data_query_persistence.rb +2 -1
  21. data/lib/aasm/persistence/dynamoid_persistence.rb +1 -1
  22. data/lib/aasm/persistence/mongoid_persistence.rb +1 -1
  23. data/lib/aasm/persistence/no_brainer_persistence.rb +105 -0
  24. data/lib/aasm/persistence/orm.rb +23 -19
  25. data/lib/aasm/persistence/plain_persistence.rb +2 -1
  26. data/lib/aasm/persistence/redis_persistence.rb +1 -1
  27. data/lib/aasm/persistence/sequel_persistence.rb +0 -1
  28. data/lib/aasm/persistence.rb +3 -0
  29. data/lib/aasm/rspec/allow_event.rb +5 -1
  30. data/lib/aasm/rspec/allow_transition_to.rb +5 -1
  31. data/lib/aasm/rspec/transition_from.rb +5 -1
  32. data/lib/aasm/version.rb +1 -1
  33. data/lib/aasm.rb +5 -2
  34. data/lib/generators/aasm/orm_helpers.rb +7 -1
  35. data/lib/generators/active_record/aasm_generator.rb +3 -1
  36. data/lib/generators/active_record/templates/migration.rb +1 -1
  37. data/lib/generators/nobrainer/aasm_generator.rb +28 -0
  38. data/lib/motion-aasm.rb +1 -0
  39. metadata +42 -344
  40. data/.document +0 -6
  41. data/.gitignore +0 -20
  42. data/.travis.yml +0 -52
  43. data/API +0 -34
  44. data/Appraisals +0 -43
  45. data/CHANGELOG.md +0 -370
  46. data/CODE_OF_CONDUCT.md +0 -13
  47. data/CONTRIBUTING.md +0 -24
  48. data/Gemfile +0 -7
  49. data/Gemfile.lock_old +0 -151
  50. data/HOWTO +0 -12
  51. data/PLANNED_CHANGES.md +0 -11
  52. data/README_FROM_VERSION_3_TO_4.md +0 -240
  53. data/Rakefile +0 -31
  54. data/TESTING.md +0 -25
  55. data/aasm.gemspec +0 -35
  56. data/callbacks.txt +0 -51
  57. data/gemfiles/rails_3.2.gemfile +0 -13
  58. data/gemfiles/rails_4.0.gemfile +0 -15
  59. data/gemfiles/rails_4.2.gemfile +0 -16
  60. data/gemfiles/rails_4.2_mongoid_5.gemfile +0 -11
  61. data/gemfiles/rails_5.0.gemfile +0 -14
  62. data/spec/database.rb +0 -44
  63. data/spec/database.yml +0 -3
  64. data/spec/en.yml +0 -12
  65. data/spec/en_deprecated_style.yml +0 -10
  66. data/spec/generators/active_record_generator_spec.rb +0 -47
  67. data/spec/generators/mongoid_generator_spec.rb +0 -31
  68. data/spec/models/active_record/basic_active_record_two_state_machines_example.rb +0 -25
  69. data/spec/models/active_record/complex_active_record_example.rb +0 -37
  70. data/spec/models/active_record/derivate_new_dsl.rb +0 -7
  71. data/spec/models/active_record/false_state.rb +0 -35
  72. data/spec/models/active_record/gate.rb +0 -39
  73. data/spec/models/active_record/invalid_persistor.rb +0 -29
  74. data/spec/models/active_record/localizer_test_model.rb +0 -34
  75. data/spec/models/active_record/no_direct_assignment.rb +0 -21
  76. data/spec/models/active_record/no_scope.rb +0 -21
  77. data/spec/models/active_record/persisted_state.rb +0 -12
  78. data/spec/models/active_record/provided_and_persisted_state.rb +0 -24
  79. data/spec/models/active_record/reader.rb +0 -7
  80. data/spec/models/active_record/readme_job.rb +0 -21
  81. data/spec/models/active_record/silent_persistor.rb +0 -29
  82. data/spec/models/active_record/simple_new_dsl.rb +0 -17
  83. data/spec/models/active_record/thief.rb +0 -29
  84. data/spec/models/active_record/transactor.rb +0 -124
  85. data/spec/models/active_record/transient.rb +0 -6
  86. data/spec/models/active_record/validator.rb +0 -118
  87. data/spec/models/active_record/with_enum.rb +0 -39
  88. data/spec/models/active_record/with_enum_without_column.rb +0 -38
  89. data/spec/models/active_record/with_false_enum.rb +0 -31
  90. data/spec/models/active_record/with_true_enum.rb +0 -39
  91. data/spec/models/active_record/worker.rb +0 -2
  92. data/spec/models/active_record/writer.rb +0 -6
  93. data/spec/models/basic_two_state_machines_example.rb +0 -25
  94. data/spec/models/callbacks/basic.rb +0 -98
  95. data/spec/models/callbacks/basic_multiple.rb +0 -75
  96. data/spec/models/callbacks/guard_within_block.rb +0 -67
  97. data/spec/models/callbacks/guard_within_block_multiple.rb +0 -66
  98. data/spec/models/callbacks/multiple_transitions_transition_guard.rb +0 -66
  99. data/spec/models/callbacks/multiple_transitions_transition_guard_multiple.rb +0 -65
  100. data/spec/models/callbacks/private_method.rb +0 -44
  101. data/spec/models/callbacks/private_method_multiple.rb +0 -44
  102. data/spec/models/callbacks/with_args.rb +0 -62
  103. data/spec/models/callbacks/with_args_multiple.rb +0 -61
  104. data/spec/models/callbacks/with_state_arg.rb +0 -30
  105. data/spec/models/callbacks/with_state_arg_multiple.rb +0 -26
  106. data/spec/models/complex_example.rb +0 -222
  107. data/spec/models/conversation.rb +0 -93
  108. data/spec/models/default_state.rb +0 -12
  109. data/spec/models/double_definer.rb +0 -21
  110. data/spec/models/dynamoid/complex_dynamoid_example.rb +0 -37
  111. data/spec/models/dynamoid/dynamoid_multiple.rb +0 -18
  112. data/spec/models/dynamoid/dynamoid_simple.rb +0 -18
  113. data/spec/models/foo.rb +0 -106
  114. data/spec/models/foo_callback_multiple.rb +0 -45
  115. data/spec/models/guard_arguments_check.rb +0 -17
  116. data/spec/models/guard_with_params.rb +0 -24
  117. data/spec/models/guard_with_params_multiple.rb +0 -18
  118. data/spec/models/guardian.rb +0 -58
  119. data/spec/models/guardian_multiple.rb +0 -48
  120. data/spec/models/guardian_without_from_specified.rb +0 -18
  121. data/spec/models/initial_state_proc.rb +0 -31
  122. data/spec/models/mongoid/complex_mongoid_example.rb +0 -37
  123. data/spec/models/mongoid/invalid_persistor_mongoid.rb +0 -39
  124. data/spec/models/mongoid/mongoid_relationships.rb +0 -26
  125. data/spec/models/mongoid/no_scope_mongoid.rb +0 -21
  126. data/spec/models/mongoid/silent_persistor_mongoid.rb +0 -39
  127. data/spec/models/mongoid/simple_mongoid.rb +0 -23
  128. data/spec/models/mongoid/simple_new_dsl_mongoid.rb +0 -25
  129. data/spec/models/mongoid/validator_mongoid.rb +0 -100
  130. data/spec/models/multi_transitioner.rb +0 -34
  131. data/spec/models/multiple_transitions_that_differ_only_by_guard.rb +0 -31
  132. data/spec/models/namespaced_multiple_example.rb +0 -42
  133. data/spec/models/no_initial_state.rb +0 -25
  134. data/spec/models/not_auto_loaded/process.rb +0 -21
  135. data/spec/models/parametrised_event.rb +0 -42
  136. data/spec/models/parametrised_event_multiple.rb +0 -29
  137. data/spec/models/process_with_new_dsl.rb +0 -31
  138. data/spec/models/provided_state.rb +0 -24
  139. data/spec/models/redis/complex_redis_example.rb +0 -40
  140. data/spec/models/redis/redis_multiple.rb +0 -20
  141. data/spec/models/redis/redis_simple.rb +0 -20
  142. data/spec/models/sequel/complex_sequel_example.rb +0 -46
  143. data/spec/models/sequel/invalid_persistor.rb +0 -52
  144. data/spec/models/sequel/sequel_multiple.rb +0 -25
  145. data/spec/models/sequel/sequel_simple.rb +0 -26
  146. data/spec/models/sequel/silent_persistor.rb +0 -50
  147. data/spec/models/sequel/transactor.rb +0 -112
  148. data/spec/models/sequel/validator.rb +0 -93
  149. data/spec/models/sequel/worker.rb +0 -12
  150. data/spec/models/silencer.rb +0 -27
  151. data/spec/models/simple_custom_example.rb +0 -53
  152. data/spec/models/simple_example.rb +0 -15
  153. data/spec/models/simple_multiple_example.rb +0 -42
  154. data/spec/models/state_machine_with_failed_event.rb +0 -20
  155. data/spec/models/states_on_one_line_example.rb +0 -8
  156. data/spec/models/sub_class.rb +0 -41
  157. data/spec/models/sub_class_with_more_states.rb +0 -18
  158. data/spec/models/sub_classing.rb +0 -3
  159. data/spec/models/super_class.rb +0 -46
  160. data/spec/models/this_name_better_not_be_in_use.rb +0 -11
  161. data/spec/models/valid_state_name.rb +0 -23
  162. data/spec/spec_helper.rb +0 -26
  163. data/spec/spec_helpers/active_record.rb +0 -7
  164. data/spec/spec_helpers/dynamoid.rb +0 -33
  165. data/spec/spec_helpers/mongoid.rb +0 -7
  166. data/spec/spec_helpers/redis.rb +0 -15
  167. data/spec/spec_helpers/remove_warnings.rb +0 -1
  168. data/spec/spec_helpers/sequel.rb +0 -7
  169. data/spec/unit/api_spec.rb +0 -100
  170. data/spec/unit/basic_two_state_machines_example_spec.rb +0 -10
  171. data/spec/unit/callback_multiple_spec.rb +0 -300
  172. data/spec/unit/callbacks_spec.rb +0 -491
  173. data/spec/unit/complex_example_spec.rb +0 -94
  174. data/spec/unit/complex_multiple_example_spec.rb +0 -115
  175. data/spec/unit/edge_cases_spec.rb +0 -16
  176. data/spec/unit/event_multiple_spec.rb +0 -73
  177. data/spec/unit/event_naming_spec.rb +0 -16
  178. data/spec/unit/event_spec.rb +0 -381
  179. data/spec/unit/exception_spec.rb +0 -11
  180. data/spec/unit/guard_arguments_check_spec.rb +0 -9
  181. data/spec/unit/guard_multiple_spec.rb +0 -60
  182. data/spec/unit/guard_spec.rb +0 -89
  183. data/spec/unit/guard_with_params_multiple_spec.rb +0 -10
  184. data/spec/unit/guard_with_params_spec.rb +0 -14
  185. data/spec/unit/guard_without_from_specified_spec.rb +0 -10
  186. data/spec/unit/initial_state_multiple_spec.rb +0 -15
  187. data/spec/unit/initial_state_spec.rb +0 -12
  188. data/spec/unit/inspection_multiple_spec.rb +0 -201
  189. data/spec/unit/inspection_spec.rb +0 -149
  190. data/spec/unit/localizer_spec.rb +0 -78
  191. data/spec/unit/memory_leak_spec.rb +0 -38
  192. data/spec/unit/multiple_transitions_that_differ_only_by_guard_spec.rb +0 -14
  193. data/spec/unit/namespaced_multiple_example_spec.rb +0 -75
  194. data/spec/unit/new_dsl_spec.rb +0 -12
  195. data/spec/unit/override_warning_spec.rb +0 -94
  196. data/spec/unit/persistence/active_record_persistence_multiple_spec.rb +0 -618
  197. data/spec/unit/persistence/active_record_persistence_spec.rb +0 -735
  198. data/spec/unit/persistence/dynamoid_persistence_multiple_spec.rb +0 -135
  199. data/spec/unit/persistence/dynamoid_persistence_spec.rb +0 -84
  200. data/spec/unit/persistence/mongoid_persistence_multiple_spec.rb +0 -204
  201. data/spec/unit/persistence/mongoid_persistence_spec.rb +0 -169
  202. data/spec/unit/persistence/redis_persistence_multiple_spec.rb +0 -88
  203. data/spec/unit/persistence/redis_persistence_spec.rb +0 -53
  204. data/spec/unit/persistence/sequel_persistence_multiple_spec.rb +0 -148
  205. data/spec/unit/persistence/sequel_persistence_spec.rb +0 -368
  206. data/spec/unit/readme_spec.rb +0 -41
  207. data/spec/unit/reloading_spec.rb +0 -15
  208. data/spec/unit/rspec_matcher_spec.rb +0 -79
  209. data/spec/unit/simple_custom_example_spec.rb +0 -39
  210. data/spec/unit/simple_example_spec.rb +0 -42
  211. data/spec/unit/simple_multiple_example_spec.rb +0 -91
  212. data/spec/unit/state_spec.rb +0 -89
  213. data/spec/unit/states_on_one_line_example_spec.rb +0 -16
  214. data/spec/unit/subclassing_multiple_spec.rb +0 -74
  215. data/spec/unit/subclassing_spec.rb +0 -46
  216. data/spec/unit/transition_spec.rb +0 -436
  217. data/test/minitest_helper.rb +0 -57
  218. data/test/unit/minitest_matcher_test.rb +0 -80
@@ -1,100 +0,0 @@
1
- class ValidatorMongoid
2
- include Mongoid::Document
3
- include AASM
4
-
5
- field :name
6
- field :status
7
-
8
- attr_accessor :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
- transitions :to => :running, :from => :sleeping
26
- end
27
-
28
- event :sleep do
29
- after_commit do |name|
30
- change_name_on_sleep name
31
- end
32
- transitions :to => :sleeping, :from => :running
33
- end
34
-
35
- event :fail do
36
- transitions :to => :failed, :from => [:sleeping, :running]
37
- end
38
- end
39
-
40
- validates_presence_of :name
41
-
42
- def change_name!
43
- self.name = "name changed"
44
- save!
45
- end
46
-
47
- def change_name_on_sleep name
48
- self.name = name
49
- save!
50
- end
51
-
52
- def fail
53
- raise StandardError.new('failed on purpose')
54
- end
55
- end
56
-
57
- class MultipleValidatorMongoid
58
- include Mongoid::Document
59
- include AASM
60
-
61
- field :name
62
- field :status
63
-
64
- attr_accessor :invalid
65
-
66
- aasm :left, :column => :status, :whiny_persistence => true do
67
- state :sleeping, :initial => true
68
- state :running
69
- state :failed, :after_enter => :fail
70
-
71
- event :run, :after_commit => :change_name! do
72
- transitions :to => :running, :from => :sleeping
73
- end
74
- event :sleep do
75
- after_commit do |name|
76
- change_name_on_sleep name
77
- end
78
- transitions :to => :sleeping, :from => :running
79
- end
80
- event :fail do
81
- transitions :to => :failed, :from => [:sleeping, :running]
82
- end
83
- end
84
-
85
- validates_presence_of :name
86
-
87
- def change_name!
88
- self.name = "name changed"
89
- save!
90
- end
91
-
92
- def change_name_on_sleep name
93
- self.name = name
94
- save!
95
- end
96
-
97
- def fail
98
- raise StandardError.new('failed on purpose')
99
- end
100
- end
@@ -1,34 +0,0 @@
1
- class MultiTransitioner
2
- include AASM
3
-
4
- attr_accessor :can_run
5
-
6
- def initialize
7
- @can_run = false
8
- end
9
-
10
- aasm do
11
- state :sleeping, :initial => true
12
- state :running
13
- state :dancing
14
- state :dead
15
-
16
- event :start do
17
- transitions :from => :sleeping, :to => :running, guard: :runnable?
18
- transitions :from => :sleeping, :to => :dancing
19
- end
20
-
21
- event :sleep do
22
- transitions to: :sleeping, if: :alive?
23
- transitions to: :dead, from: [:running, :dancing]
24
- end
25
- end
26
-
27
- def runnable?
28
- @can_run
29
- end
30
-
31
- def alive?
32
- true
33
- end
34
- end
@@ -1,31 +0,0 @@
1
- class MultipleTransitionsThatDifferOnlyByGuard
2
- include AASM
3
-
4
- attr_accessor :executed_second
5
-
6
- aasm do
7
- state :start, :initial => true
8
- state :gone
9
-
10
- event :go do
11
- transitions :from => :start, :to => :gone, :guard => :returns_false, :after => :this_should_not_execute
12
- transitions :from => :start, :to => :gone, :guard => :returns_true, :after => :this_should_execute
13
- end
14
- end
15
-
16
- def returns_false
17
- false
18
- end
19
-
20
- def returns_true
21
- true
22
- end
23
-
24
- def this_should_not_execute
25
- raise RuntimeError, "This should not execute"
26
- end
27
-
28
- def this_should_execute
29
- self.executed_second = true
30
- end
31
- end
@@ -1,42 +0,0 @@
1
- class NamespacedMultipleExample
2
- include AASM
3
- aasm(:status) do
4
- state :unapproved, :initial => true
5
- state :approved
6
-
7
- event :approve do
8
- transitions :from => :unapproved, :to => :approved
9
- end
10
-
11
- event :unapprove do
12
- transitions :from => :approved, :to => :unapproved
13
- end
14
- end
15
-
16
- aasm(:review_status, namespace: :review) do
17
- state :unapproved, :initial => true
18
- state :approved
19
-
20
- event :approve_review do
21
- transitions :from => :unapproved, :to => :approved
22
- end
23
-
24
- event :unapprove_review do
25
- transitions :from => :approved, :to => :unapproved
26
- end
27
- end
28
-
29
- # Test namespace event methods with suffix (ie may_sell_car?, sell_car!)
30
- aasm(:car, namespace: :car) do
31
- state :unsold, :initial => true
32
- state :sold
33
-
34
- event :sell do
35
- transitions :from => :unsold, :to => :sold
36
- end
37
-
38
- event :return do
39
- transitions :from => :sold, :to => :unsold
40
- end
41
- end
42
- end
@@ -1,25 +0,0 @@
1
- class NoInitialState
2
- include AASM
3
-
4
- aasm do
5
- state :read
6
- state :ended
7
-
8
- event :foo do
9
- transitions :to => :ended, :from => [:read]
10
- end
11
- end
12
- end
13
-
14
- class NoInitialStateMultiple
15
- include AASM
16
-
17
- aasm(:left) do
18
- state :read
19
- state :ended
20
-
21
- event :foo do
22
- transitions :to => :ended, :from => [:read]
23
- end
24
- end
25
- end
@@ -1,21 +0,0 @@
1
- module Models
2
- class Process
3
- include AASM
4
-
5
- aasm do
6
- state :sleeping
7
- state :running
8
- state :suspended
9
-
10
- event :start do
11
- transitions :from => :sleeping, :to => :running
12
- end
13
-
14
- event :stop do
15
- transitions :from => :running, :to => :suspended
16
- end
17
- end
18
-
19
- end
20
- end
21
-
@@ -1,42 +0,0 @@
1
- class ParametrisedEvent
2
- include AASM
3
- aasm do
4
- state :sleeping, :initial => true
5
- state :showering
6
- state :working
7
- state :dating
8
- state :prettying_up
9
-
10
- event :wakeup do
11
- transitions :from => :sleeping, :to => [:showering, :working]
12
- end
13
-
14
- event :shower do
15
- transitions :from => :sleeping, :to => :showering, :after => :wet_hair, :success => :wear_clothes
16
- end
17
-
18
- event :dress do
19
- transitions :from => :sleeping, :to => :working, :after => :wear_clothes, :success => :wear_makeup
20
- transitions :from => :showering, :to => [:working, :dating], :after => Proc.new { |*args| wear_clothes(*args) }, :success => proc { |*args| wear_makeup(*args) }
21
- transitions :from => :showering, :to => :prettying_up, :after => [:condition_hair, :fix_hair], :success => [:touch_up_hair]
22
- end
23
- end
24
-
25
- def wear_clothes(shirt_color, trouser_type=nil)
26
- end
27
-
28
- def wear_makeup(makeup, moisturizer)
29
- end
30
-
31
- def wet_hair(dryer)
32
- end
33
-
34
- def condition_hair
35
- end
36
-
37
- def fix_hair
38
- end
39
-
40
- def touch_up_hair
41
- end
42
- end
@@ -1,29 +0,0 @@
1
- class ParametrisedEventMultiple
2
- include AASM
3
- aasm(:left) do
4
- state :sleeping, :initial => true
5
- state :showering
6
- state :working
7
- state :dating
8
- state :prettying_up
9
-
10
- event :wakeup do
11
- transitions :from => :sleeping, :to => [:showering, :working]
12
- end
13
-
14
- event :dress do
15
- transitions :from => :sleeping, :to => :working, :after => :wear_clothes
16
- transitions :from => :showering, :to => [:working, :dating], :after => Proc.new { |*args| wear_clothes(*args) }
17
- transitions :from => :showering, :to => :prettying_up, :after => [:condition_hair, :fix_hair]
18
- end
19
- end
20
-
21
- def wear_clothes(shirt_color, trouser_type=nil)
22
- end
23
-
24
- def condition_hair
25
- end
26
-
27
- def fix_hair
28
- end
29
- end
@@ -1,31 +0,0 @@
1
- class ProcessWithNewDsl
2
- include AASM
3
-
4
- def self.state(*args)
5
- raise "wrong state method"
6
- end
7
-
8
- attr_accessor :flagged
9
-
10
- aasm do
11
- state :sleeping, :initial => true
12
- state :running, :after_enter => :flag
13
- state :suspended
14
-
15
- event :start do
16
- transitions :from => :sleeping, :to => :running
17
- end
18
- event :stop do
19
- transitions :from => :running, :to => :suspended
20
- end
21
- end
22
-
23
- def flag
24
- self.flagged = true
25
- end
26
-
27
- def self.event(*args)
28
- raise "wrong event method"
29
- end
30
-
31
- end
@@ -1,24 +0,0 @@
1
- class ProvidedState
2
- attr_accessor :transient_store, :persisted_store
3
- include AASM
4
- aasm do
5
- state :alpha, :initial => true
6
- state :beta
7
- state :gamma
8
- event :release do
9
- transitions :from => [:alpha, :beta, :gamma], :to => :beta
10
- end
11
- end
12
-
13
- def aasm_read_state(*args)
14
- :beta
15
- end
16
-
17
- def aasm_write_state(new_state, *args)
18
- @persisted_store = new_state
19
- end
20
-
21
- def aasm_write_state_without_persistence(new_state, *args)
22
- @transient_store = new_state
23
- end
24
- end
@@ -1,40 +0,0 @@
1
- class RedisComplexExample
2
- include Redis::Objects
3
- include AASM
4
-
5
- value :left
6
- value :right
7
-
8
- def id
9
- 1
10
- end
11
-
12
- aasm :left, :column => 'left' do
13
- state :one, :initial => true
14
- state :two
15
- state :three
16
-
17
- event :increment do
18
- transitions :from => :one, :to => :two
19
- transitions :from => :two, :to => :three
20
- end
21
- event :reset do
22
- transitions :from => :three, :to => :one
23
- end
24
- end
25
-
26
- aasm :right, :column => 'right' do
27
- state :alpha, :initial => true
28
- state :beta
29
- state :gamma
30
-
31
- event :level_up do
32
- transitions :from => :alpha, :to => :beta
33
- transitions :from => :beta, :to => :gamma
34
- end
35
- event :level_down do
36
- transitions :from => :gamma, :to => :beta
37
- transitions :from => :beta, :to => :alpha
38
- end
39
- end
40
- end
@@ -1,20 +0,0 @@
1
- class RedisMultiple
2
- include Redis::Objects
3
- include AASM
4
-
5
- value :status
6
-
7
- def id
8
- 1
9
- end
10
-
11
- aasm :left, :column => :status
12
- aasm :left do
13
- state :alpha, :initial => true
14
- state :beta
15
- state :gamma
16
- event :release do
17
- transitions :from => [:alpha, :beta, :gamma], :to => :beta
18
- end
19
- end
20
- end
@@ -1,20 +0,0 @@
1
- class RedisSimple
2
- include Redis::Objects
3
- include AASM
4
-
5
- value :status
6
-
7
- def id
8
- 1
9
- end
10
-
11
- aasm :column => :status
12
- aasm do
13
- state :alpha, :initial => true
14
- state :beta
15
- state :gamma
16
- event :release do
17
- transitions :from => [:alpha, :beta, :gamma], :to => :beta
18
- end
19
- end
20
- end
@@ -1,46 +0,0 @@
1
- db = Sequel::DATABASES.first || Sequel.connect(SEQUEL_DB)
2
-
3
- # if you want to see the statements while running the spec enable the following line
4
- # db.loggers << Logger.new($stderr)
5
- db.create_table(:complex_sequel_examples) do
6
- primary_key :id
7
- String :left
8
- String :right
9
- end
10
-
11
- module Sequel
12
- class ComplexExample < Sequel::Model(:complex_sequel_examples)
13
-
14
- include AASM
15
-
16
- aasm :left, :column => 'left' do
17
- state :one, :initial => true
18
- state :two
19
- state :three
20
-
21
- event :increment do
22
- transitions :from => :one, :to => :two
23
- transitions :from => :two, :to => :three
24
- end
25
- event :reset do
26
- transitions :from => :three, :to => :one
27
- end
28
- end
29
-
30
- aasm :right, :column => 'right' do
31
- state :alpha, :initial => true
32
- state :beta
33
- state :gamma
34
-
35
- event :level_up do
36
- transitions :from => :alpha, :to => :beta
37
- transitions :from => :beta, :to => :gamma
38
- end
39
- event :level_down do
40
- transitions :from => :gamma, :to => :beta
41
- transitions :from => :beta, :to => :alpha
42
- end
43
- end
44
-
45
- end
46
- end
@@ -1,52 +0,0 @@
1
- db = Sequel::DATABASES.first || Sequel.connect(SEQUEL_DB)
2
-
3
- [:invalid_persistors, :multiple_invalid_persistors].each do |table_name|
4
- db.create_table(table_name) do
5
- primary_key :id
6
- String "name"
7
- String "status"
8
- end
9
- end
10
-
11
- module Sequel
12
- class InvalidPersistor < Sequel::Model(:invalid_persistors)
13
- plugin :validation_helpers
14
-
15
- include AASM
16
- aasm :column => :status, :skip_validation_on_save => true do
17
- state :sleeping, :initial => true
18
- state :running
19
- event :run do
20
- transitions :to => :running, :from => :sleeping
21
- end
22
- event :sleep do
23
- transitions :to => :sleeping, :from => :running
24
- end
25
- end
26
-
27
- def validate
28
- super
29
- validates_presence :name
30
- end
31
- end
32
-
33
- class MultipleInvalidPersistor < Sequel::Model(:multiple_invalid_persistors)
34
- plugin :validation_helpers
35
-
36
- include AASM
37
- aasm :left, :column => :status, :skip_validation_on_save => true do
38
- state :sleeping, :initial => true
39
- state :running
40
- event :run do
41
- transitions :to => :running, :from => :sleeping
42
- end
43
- event :sleep do
44
- transitions :to => :sleeping, :from => :running
45
- end
46
- end
47
- def validate
48
- super
49
- validates_presence :name
50
- end
51
- end
52
- end
@@ -1,25 +0,0 @@
1
- db = Sequel::DATABASES.first || Sequel.connect(SEQUEL_DB)
2
-
3
- # if you want to see the statements while running the spec enable the following line
4
- # db.loggers << Logger.new($stderr)
5
- db.create_table(:multiples) do
6
- primary_key :id
7
- String :status
8
- end
9
- module Sequel
10
- class Multiple < Sequel::Model(:multiples)
11
- include AASM
12
-
13
- attr_accessor :default
14
-
15
- aasm :left, :column => :status
16
- aasm :left do
17
- state :alpha, :initial => true
18
- state :beta
19
- state :gamma
20
- event :release do
21
- transitions :from => [:alpha, :beta, :gamma], :to => :beta
22
- end
23
- end
24
- end
25
- end
@@ -1,26 +0,0 @@
1
- db = Sequel::DATABASES.first || Sequel.connect(SEQUEL_DB)
2
-
3
- # if you want to see the statements while running the spec enable the following line
4
- # db.loggers << Logger.new($stderr)
5
- db.create_table(:simples) do
6
- primary_key :id
7
- String :status
8
- end
9
-
10
- module Sequel
11
- class Simple < Sequel::Model(:simples)
12
- include AASM
13
-
14
- attr_accessor :default
15
-
16
- aasm :column => :status
17
- aasm do
18
- state :alpha, :initial => true
19
- state :beta
20
- state :gamma
21
- event :release do
22
- transitions :from => [:alpha, :beta, :gamma], :to => :beta
23
- end
24
- end
25
- end
26
- end
@@ -1,50 +0,0 @@
1
- db = Sequel::DATABASES.first || Sequel.connect(SEQUEL_DB)
2
-
3
- [:silent_persistors, :multiple_silent_persistors].each do |t|
4
- db.create_table(t) do
5
- primary_key :id
6
- String "name"
7
- String "status"
8
- end
9
- end
10
-
11
- module Sequel
12
- class SilentPersistor < Sequel::Model(:silent_persistors)
13
- plugin :validation_helpers
14
-
15
- include AASM
16
- aasm :column => :status, :whiny_persistence => false do
17
- state :sleeping, :initial => true
18
- state :running
19
- event :run do
20
- transitions :to => :running, :from => :sleeping
21
- end
22
- event :sleep do
23
- transitions :to => :sleeping, :from => :running
24
- end
25
- end
26
- def validate
27
- validates_presence :name
28
- end
29
- end
30
-
31
- class MultipleSilentPersistor< Sequel::Model(:multiple_silent_persistors)
32
- plugin :validation_helpers
33
-
34
- include AASM
35
- aasm :left, :column => :status, :whiny_persistence => false do
36
- state :sleeping, :initial => true
37
- state :running
38
- event :run do
39
- transitions :to => :running, :from => :sleeping
40
- end
41
- event :sleep do
42
- transitions :to => :sleeping, :from => :running
43
- end
44
- end
45
-
46
- def validate
47
- validates_presence :name
48
- end
49
- end
50
- end