aasm 4.12.2 → 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/LICENSE +1 -1
  3. data/README.md +393 -116
  4. data/lib/aasm/aasm.rb +30 -27
  5. data/lib/aasm/base.rb +64 -11
  6. data/lib/aasm/configuration.rb +6 -0
  7. data/lib/aasm/core/event.rb +26 -30
  8. data/lib/aasm/core/invoker.rb +129 -0
  9. data/lib/aasm/core/invokers/base_invoker.rb +75 -0
  10. data/lib/aasm/core/invokers/class_invoker.rb +52 -0
  11. data/lib/aasm/core/invokers/literal_invoker.rb +49 -0
  12. data/lib/aasm/core/invokers/proc_invoker.rb +59 -0
  13. data/lib/aasm/core/state.rb +16 -14
  14. data/lib/aasm/core/transition.rb +8 -69
  15. data/lib/aasm/dsl_helper.rb +24 -22
  16. data/lib/aasm/errors.rb +5 -3
  17. data/lib/aasm/instance_base.rb +34 -3
  18. data/lib/aasm/localizer.rb +13 -3
  19. data/lib/aasm/persistence/active_record_persistence.rb +25 -5
  20. data/lib/aasm/persistence/base.rb +14 -3
  21. data/lib/aasm/persistence/core_data_query_persistence.rb +2 -1
  22. data/lib/aasm/persistence/dynamoid_persistence.rb +1 -1
  23. data/lib/aasm/persistence/mongoid_persistence.rb +1 -1
  24. data/lib/aasm/persistence/no_brainer_persistence.rb +105 -0
  25. data/lib/aasm/persistence/orm.rb +26 -14
  26. data/lib/aasm/persistence/plain_persistence.rb +2 -1
  27. data/lib/aasm/persistence/redis_persistence.rb +1 -1
  28. data/lib/aasm/persistence/sequel_persistence.rb +0 -1
  29. data/lib/aasm/persistence.rb +3 -0
  30. data/lib/aasm/rspec/allow_event.rb +5 -1
  31. data/lib/aasm/rspec/allow_transition_to.rb +5 -1
  32. data/lib/aasm/rspec/transition_from.rb +5 -1
  33. data/lib/aasm/version.rb +1 -1
  34. data/lib/aasm.rb +5 -2
  35. data/lib/generators/aasm/orm_helpers.rb +7 -1
  36. data/lib/generators/active_record/aasm_generator.rb +3 -1
  37. data/lib/generators/active_record/templates/migration.rb +1 -1
  38. data/lib/generators/nobrainer/aasm_generator.rb +28 -0
  39. data/lib/motion-aasm.rb +1 -0
  40. metadata +42 -343
  41. data/.document +0 -6
  42. data/.gitignore +0 -20
  43. data/.travis.yml +0 -52
  44. data/API +0 -34
  45. data/Appraisals +0 -43
  46. data/CHANGELOG.md +0 -365
  47. data/CODE_OF_CONDUCT.md +0 -13
  48. data/CONTRIBUTING.md +0 -24
  49. data/Gemfile +0 -7
  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 -99
  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 -84
  174. data/spec/unit/complex_multiple_example_spec.rb +0 -99
  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 -721
  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,53 +0,0 @@
1
- class CustomAASMBase < AASM::Base
2
- # A custom transiton that we want available across many AASM models.
3
- def count_transitions!
4
- klass.class_eval do
5
- aasm :with_klass => CustomAASMBase do
6
- after_all_transitions :increment_transition_count
7
- end
8
- end
9
- end
10
-
11
- # A custom annotation that we want available across many AASM models.
12
- def requires_guards!
13
- klass.class_eval do
14
- attr_reader :authorizable_called,
15
- :transition_count,
16
- :fillable_called
17
-
18
- def authorizable?
19
- @authorizable_called = true
20
- end
21
-
22
- def fillable?
23
- @fillable_called = true
24
- end
25
-
26
- def increment_transition_count
27
- @transition_count ||= 0
28
- @transition_count += 1
29
- end
30
- end
31
- end
32
- end
33
-
34
- class SimpleCustomExample
35
- include AASM
36
-
37
- # Let's build an AASM state machine with our custom class.
38
- aasm :with_klass => CustomAASMBase do
39
- requires_guards!
40
- count_transitions!
41
-
42
- state :initialised, :initial => true
43
- state :filled_out
44
- state :authorised
45
-
46
- event :fill_out do
47
- transitions :from => :initialised, :to => :filled_out, :guard => :fillable?
48
- end
49
- event :authorise do
50
- transitions :from => :filled_out, :to => :authorised, :guard => :authorizable?
51
- end
52
- end
53
- end
@@ -1,15 +0,0 @@
1
- class SimpleExample
2
- include AASM
3
- aasm do
4
- state :initialised, :initial => true
5
- state :filled_out
6
- state :authorised
7
-
8
- event :fill_out do
9
- transitions :from => :initialised, :to => :filled_out
10
- end
11
- event :authorise do
12
- transitions :from => :filled_out, :to => :authorised
13
- end
14
- end
15
- end
@@ -1,42 +0,0 @@
1
- class SimpleMultipleExample
2
- include AASM
3
- aasm(:move) do
4
- state :standing, :initial => true
5
- state :walking
6
- state :running
7
-
8
- event :walk do
9
- transitions :from => :standing, :to => :walking
10
- end
11
- event :run do
12
- transitions :from => [:standing, :walking], :to => :running
13
- end
14
- event :hold do
15
- transitions :from => [:walking, :running], :to => :standing
16
- end
17
- end
18
-
19
- aasm(:work) do
20
- state :sleeping, :initial => true
21
- state :processing
22
-
23
- event :start do
24
- transitions :from => :sleeping, :to => :processing
25
- end
26
- event :stop do
27
- transitions :from => :processing, :to => :sleeping
28
- end
29
- end
30
-
31
- aasm(:question) do
32
- state :answered, :initial => true
33
- state :asked
34
-
35
- event :ask, :binding_event => :start do
36
- transitions :from => :answered, :to => :asked
37
- end
38
- event :answer, :binding_event => :stop do
39
- transitions :from => :asked, :to => :answered
40
- end
41
- end
42
- end
@@ -1,20 +0,0 @@
1
- class StateMachineWithFailedEvent
2
- include AASM
3
-
4
- aasm do
5
- state :init, :initial => true
6
- state :failed
7
- state :sent
8
-
9
- event :failed do
10
- transitions :from => :init, :to => :failed
11
- end
12
- event :send, :before => :callback do
13
- transitions :from => :init, :to => :sent
14
- end
15
- end
16
-
17
- def callback
18
- true
19
- end
20
- end
@@ -1,8 +0,0 @@
1
- class StatesOnOneLineExample
2
- include AASM
3
-
4
- aasm :one_line do
5
- state :initial, :initial => true
6
- state :first, :second
7
- end
8
- end
@@ -1,41 +0,0 @@
1
- require_relative 'super_class'
2
-
3
- class SubClass < SuperClass
4
- # Add an after callback that is not defined in the parent
5
- aasm.state_machine.events[:foo].options[:after] = [:after_foo_event]
6
-
7
- # Add global callback that is not defined in the parent
8
- aasm.state_machine.global_callbacks[:after_all_transitions] = :after_all_event
9
-
10
- attr_accessor :called_after
11
-
12
- def after_foo_event
13
- self.called_after = true
14
- end
15
-
16
- def after_all_event; end
17
- end
18
-
19
- class SubClassMultiple < SuperClassMultiple
20
- # Add after callbacks that are not defined in the parent
21
- aasm(:left).state_machine.events[:foo].options[:after] = [:left_after_foo_event]
22
- aasm(:right).state_machine.events[:close].options[:after] = [:right_after_close_event]
23
-
24
- # Add global callback that is not defined in the parent
25
- aasm(:left).state_machine.global_callbacks[:after_all_transitions] = :left_after_all_event
26
- aasm(:right).state_machine.global_callbacks[:after_all_transitions] = :right_after_all_event
27
-
28
- attr_accessor :left_called_after, :right_called_after
29
-
30
- def left_after_foo_event
31
- self.left_called_after = true
32
- end
33
-
34
- def right_after_close_event
35
- self.right_called_after = true
36
- end
37
-
38
- def left_after_all_event; end
39
-
40
- def right_after_all_event; end
41
- end
@@ -1,18 +0,0 @@
1
- require_relative 'super_class'
2
-
3
- class SubClassWithMoreStates < SuperClass
4
- include AASM
5
- aasm do
6
- state :foo
7
- end
8
- end
9
-
10
- class SubClassWithMoreStatesMultiple < SuperClassMultiple
11
- include AASM
12
- aasm(:left) do
13
- state :foo
14
- end
15
- aasm(:right) do
16
- state :archived
17
- end
18
- end
@@ -1,3 +0,0 @@
1
- class SubClassing < Silencer
2
-
3
- end
@@ -1,46 +0,0 @@
1
- class SuperClass
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
-
13
- def update_state
14
- if may_foo?
15
- foo!
16
- end
17
- end
18
- end
19
-
20
- class SuperClassMultiple
21
- include AASM
22
-
23
- aasm(:left) do
24
- state :read
25
- state :ended
26
-
27
- event :foo do
28
- transitions :to => :ended, :from => [:read]
29
- end
30
- end
31
-
32
- aasm(:right) do
33
- state :opened
34
- state :closed
35
-
36
- event :close do
37
- transitions :to => :closed, :from => [:opened]
38
- end
39
- end
40
-
41
- def update_state
42
- if may_foo?
43
- foo!
44
- end
45
- end
46
- end
@@ -1,11 +0,0 @@
1
- class ThisNameBetterNotBeInUse
2
- include AASM
3
-
4
- aasm do
5
- state :initial
6
- state :symbol
7
- state :string
8
- state :array
9
- state :proc
10
- end
11
- end
@@ -1,23 +0,0 @@
1
- class ValidStateName
2
- include AASM
3
- aasm do
4
- state :invalid, :initial => true
5
- state :valid
6
-
7
- event :valid do
8
- transitions :to => :valid, :from => [:invalid]
9
- end
10
- end
11
- end
12
-
13
- class ValidStateNameMultiple
14
- include AASM
15
- aasm(:left) do
16
- state :invalid, :initial => true
17
- state :valid
18
-
19
- event :valid do
20
- transitions :to => :valid, :from => [:invalid]
21
- end
22
- end
23
- end
data/spec/spec_helper.rb DELETED
@@ -1,26 +0,0 @@
1
- $LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__)))
2
- $LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib')))
3
- require 'aasm'
4
- require 'rspec'
5
- require 'aasm/rspec'
6
- require 'pry'
7
-
8
- # require 'ruby-debug'; Debugger.settings[:autoeval] = true; debugger; rubys_debugger = 'annoying'
9
- # require 'ruby-debug/completion'
10
- # require 'pry'
11
-
12
- SEQUEL_DB = defined?(JRUBY_VERSION) ? 'jdbc:sqlite::memory:' : 'sqlite:/'
13
-
14
- def load_schema
15
- require 'logger'
16
- config = YAML::load(IO.read(File.dirname(__FILE__) + '/database.yml'))
17
- ActiveRecord::Base.logger = Logger.new(File.dirname(__FILE__) + "/debug.log")
18
- ActiveRecord::Base.establish_connection(config['sqlite3'])
19
- require File.dirname(__FILE__) + "/database.rb"
20
- end
21
-
22
- # custom spec helpers
23
- Dir[File.dirname(__FILE__) + "/spec_helpers/**/*.rb"].sort.each { |f| require File.expand_path(f) }
24
-
25
- # example model classes
26
- Dir[File.dirname(__FILE__) + "/models/*.rb"].sort.each { |f| require File.expand_path(f) }
@@ -1,7 +0,0 @@
1
- # encoding: utf-8
2
- begin
3
- require 'active_record'
4
- puts "active_record gem found, running ActiveRecord specs \e[32m#{'✔'}\e[0m"
5
- rescue LoadError
6
- puts "active_record gem not found, not running ActiveRecord specs \e[31m#{'✖'}\e[0m"
7
- end
@@ -1,33 +0,0 @@
1
- # encoding: utf-8
2
- begin
3
- require 'dynamoid'
4
- require 'aws-sdk-resources'
5
- puts "dynamoid gem found, running Dynamoid specs \e[32m#{'✔'}\e[0m"
6
-
7
- ENV['ACCESS_KEY'] ||= 'abcd'
8
- ENV['SECRET_KEY'] ||= '1234'
9
-
10
- Aws.config.update({
11
- region: 'us-west-2',
12
- credentials: Aws::Credentials.new(ENV['ACCESS_KEY'], ENV['SECRET_KEY'])
13
- })
14
-
15
- Dynamoid.configure do |config|
16
- config.namespace = "dynamoid_tests"
17
- config.endpoint = 'http://127.0.0.1:30180'
18
- config.warn_on_scan = false
19
- end
20
-
21
- Dynamoid.logger.level = Logger::FATAL
22
-
23
- RSpec.configure do |c|
24
- c.before(:each) do
25
- Dynamoid.adapter.list_tables.each do |table|
26
- Dynamoid.adapter.delete_table(table) if table =~ /^#{Dynamoid::Config.namespace}/
27
- end
28
- Dynamoid.adapter.tables.clear
29
- end
30
- end
31
- rescue LoadError
32
- puts "dynamoid gem not found, not running Dynamoid specs \e[31m#{'✖'}\e[0m"
33
- end
@@ -1,7 +0,0 @@
1
- # encoding: utf-8
2
- begin
3
- require 'mongoid'
4
- puts "mongoid gem found, running mongoid specs \e[32m#{'✔'}\e[0m"
5
- rescue LoadError
6
- puts "mongoid gem not found, not running mongoid specs \e[31m#{'✖'}\e[0m"
7
- end
@@ -1,15 +0,0 @@
1
- # encoding: utf-8
2
- begin
3
- require 'redis-objects'
4
- puts "redis-objects gem found, running Redis specs \e[32m#{'✔'}\e[0m"
5
-
6
- Redis.current = Redis.new(host: '127.0.0.1', port: 6379)
7
-
8
- RSpec.configure do |c|
9
- c.before(:each) do
10
- Redis.current.keys('redis_*').each { |k| Redis.current.del k }
11
- end
12
- end
13
- rescue LoadError
14
- puts "redis-objects gem not found, not running Redis specs \e[31m#{'✖'}\e[0m"
15
- end
@@ -1 +0,0 @@
1
- AASM::Configuration.hide_warnings = true
@@ -1,7 +0,0 @@
1
- # encoding: utf-8
2
- begin
3
- require 'sequel'
4
- puts "sequel gem found, running Sequel specs \e[32m#{'✔'}\e[0m"
5
- rescue LoadError
6
- puts "sequel gem not found, not running Sequel specs \e[31m#{'✖'}\e[0m"
7
- end
@@ -1,100 +0,0 @@
1
- require 'spec_helper'
2
-
3
- if defined?(ActiveRecord)
4
- require 'models/default_state.rb'
5
- require 'models/provided_state.rb'
6
- require 'models/active_record/persisted_state.rb'
7
- require 'models/active_record/provided_and_persisted_state.rb'
8
-
9
- load_schema
10
-
11
- describe "reading the current state" do
12
- it "uses the AASM default" do
13
- expect(DefaultState.new.aasm.current_state).to eql :alpha
14
- end
15
-
16
- it "uses the provided method" do
17
- expect(ProvidedState.new.aasm.current_state).to eql :beta
18
- end
19
-
20
- it "uses the persistence storage" do
21
- expect(PersistedState.new.aasm.current_state).to eql :alpha
22
- end
23
-
24
- it "uses the provided method even if persisted" do
25
- expect(ProvidedAndPersistedState.new.aasm.current_state).to eql :gamma
26
- end
27
-
28
- context "after dup" do
29
- it "uses the persistence storage" do
30
- source = PersistedState.create!
31
- copy = source.dup
32
- copy.save!
33
-
34
- copy.release!
35
-
36
- expect(source.aasm_state).to eql 'alpha'
37
- expect(source.aasm.current_state).to eql :alpha
38
-
39
- source2 = PersistedState.find(source.id)
40
- expect(source2.reload.aasm_state).to eql 'alpha'
41
- expect(source2.aasm.current_state).to eql :alpha
42
-
43
- expect(copy.aasm_state).to eql 'beta'
44
- expect(copy.aasm.current_state).to eql :beta
45
- end
46
- end
47
- end
48
-
49
- describe "writing and persisting the current state" do
50
- it "uses the AASM default" do
51
- o = DefaultState.new
52
- o.release!
53
- expect(o.persisted_store).to be_nil
54
- end
55
-
56
- it "uses the provided method" do
57
- o = ProvidedState.new
58
- o.release!
59
- expect(o.persisted_store).to eql :beta
60
- end
61
-
62
- it "uses the persistence storage" do
63
- o = PersistedState.new
64
- o.release!
65
- expect(o.persisted_store).to be_nil
66
- end
67
-
68
- it "uses the provided method even if persisted" do
69
- o = ProvidedAndPersistedState.new
70
- o.release!
71
- expect(o.persisted_store).to eql :beta
72
- end
73
- end
74
-
75
- describe "writing the current state without persisting it" do
76
- it "uses the AASM default" do
77
- o = DefaultState.new
78
- o.release
79
- expect(o.transient_store).to be_nil
80
- end
81
-
82
- it "uses the provided method" do
83
- o = ProvidedState.new
84
- o.release
85
- expect(o.transient_store).to eql :beta
86
- end
87
-
88
- it "uses the persistence storage" do
89
- o = PersistedState.new
90
- o.release
91
- expect(o.transient_store).to be_nil
92
- end
93
-
94
- it "uses the provided method even if persisted" do
95
- o = ProvidedAndPersistedState.new
96
- o.release
97
- expect(o.transient_store).to eql :beta
98
- end
99
- end
100
- end
@@ -1,10 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe 'on initialization' do
4
- let(:example) { BasicTwoStateMachinesExample.new }
5
-
6
- it 'should be in the initial state' do
7
- expect(example.aasm(:search).current_state).to eql :initialised
8
- expect(example.aasm(:sync).current_state).to eql :unsynced
9
- end
10
- end