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,16 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "sqlite3", "~> 1.3.5", platforms: :ruby
6
- gem "rails", "4.2.5"
7
- gem "nokogiri", "1.6.8.1", platforms: [:ruby_19]
8
- gem "mime-types", "~> 2", platforms: [:ruby_19, :jruby]
9
- gem "mongoid", "~> 4.0"
10
- gem "sequel"
11
- gem "dynamoid", "~> 1", platforms: :ruby
12
- gem "aws-sdk", "~> 2", platforms: :ruby
13
- gem "redis-objects"
14
- gem "activerecord-jdbcsqlite3-adapter", "1.3.24", platforms: :jruby
15
-
16
- gemspec path: "../"
@@ -1,11 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "sqlite3", "~> 1.3.5", platforms: :ruby
6
- gem "rails", "4.2.5"
7
- gem "mime-types", "~> 2", platforms: [:ruby_19, :jruby]
8
- gem "mongoid", "~> 5.0"
9
- gem "activerecord-jdbcsqlite3-adapter", "1.3.24", platforms: :jruby
10
-
11
- gemspec path: "../"
@@ -1,9 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "sqlite3", "~> 1.3.5", platforms: :ruby
6
- gem "rails", "4.2.5"
7
- gem "nobrainer", "~> 0.33.0"
8
-
9
- gemspec path: "../"
@@ -1,13 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "sqlite3", "~> 1.3.5", platforms: :ruby
6
- gem "rails", "5.0.0"
7
- gem "mongoid", "~> 6.0"
8
- gem "sequel"
9
- gem "dynamoid", "~> 1.3", platforms: :ruby
10
- gem "aws-sdk", "~> 2", platforms: :ruby
11
- gem "redis-objects"
12
-
13
- gemspec path: "../"
@@ -1,9 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "sqlite3", "~> 1.3.5", platforms: :ruby
6
- gem "rails", "5.0.0"
7
- gem "nobrainer", "~> 0.33.0"
8
-
9
- gemspec path: "../"
@@ -1,13 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "sqlite3", "~> 1.3.5", platforms: :ruby
6
- gem "rails", "5.1"
7
- gem "mongoid", "~>6.0"
8
- gem "sequel"
9
- gem "dynamoid", "~> 1.3", platforms: :ruby
10
- gem "aws-sdk", "~>2", platforms: :ruby
11
- gem "redis-objects"
12
-
13
- gemspec path: "../"
@@ -1,13 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "sqlite3", "~> 1.3.5", platforms: :ruby
6
- gem "rails", "5.2"
7
- gem "mongoid", "~>6.0"
8
- gem "sequel"
9
- gem "dynamoid", "~>2.2", platforms: :ruby
10
- gem "aws-sdk", "~>2", platforms: :ruby
11
- gem "redis-objects"
12
-
13
- gemspec path: "../"
data/spec/database.rb DELETED
@@ -1,59 +0,0 @@
1
- ActiveRecord::Migration.suppress_messages do
2
- %w{gates multiple_gates readers writers transients simples no_scopes multiple_no_scopes no_direct_assignments multiple_no_direct_assignments thieves multiple_thieves localizer_test_models persisted_states provided_and_persisted_states with_enums with_enum_without_columns multiple_with_enum_without_columns with_true_enums with_false_enums false_states multiple_with_enums multiple_with_true_enums multiple_with_false_enums multiple_false_states readme_jobs}.each do |table_name|
3
- ActiveRecord::Migration.create_table table_name, :force => true do |t|
4
- t.string "aasm_state"
5
- end
6
- end
7
-
8
- ActiveRecord::Migration.create_table "simple_new_dsls", :force => true do |t|
9
- t.string "status"
10
- end
11
- ActiveRecord::Migration.create_table "multiple_simple_new_dsls", :force => true do |t|
12
- t.string "status"
13
- end
14
- ActiveRecord::Migration.create_table "implemented_abstract_class_dsls", :force => true do |t|
15
- t.string "status"
16
- end
17
- ActiveRecord::Migration.create_table "users", :force => true do |t|
18
- t.string "status"
19
- end
20
-
21
- ActiveRecord::Migration.create_table "complex_active_record_examples", :force => true do |t|
22
- t.string "left"
23
- t.string "right"
24
- end
25
-
26
- ActiveRecord::Migration.create_table "works", :force => true do |t|
27
- t.string "status"
28
- end
29
-
30
- %w(validators multiple_validators workers invalid_persistors multiple_invalid_persistors silent_persistors multiple_silent_persistors).each do |table_name|
31
- ActiveRecord::Migration.create_table table_name, :force => true do |t|
32
- t.string "name"
33
- t.string "status"
34
- end
35
- end
36
-
37
- %w(transactors no_lock_transactors lock_transactors lock_no_wait_transactors no_transactors multiple_transactors).each do |table_name|
38
- ActiveRecord::Migration.create_table table_name, :force => true do |t|
39
- t.string "name"
40
- t.string "status"
41
- t.integer "worker_id"
42
- end
43
- end
44
-
45
- ActiveRecord::Migration.create_table "fathers", :force => true do |t|
46
- t.string "aasm_state"
47
- t.string "type"
48
- end
49
-
50
- ActiveRecord::Migration.create_table "basic_active_record_two_state_machines_examples", :force => true do |t|
51
- t.string "search"
52
- t.string "sync"
53
- end
54
-
55
- ActiveRecord::Migration.create_table "instance_level_skip_validation_examples", :force => true do |t|
56
- t.string "state"
57
- t.string "some_string"
58
- end
59
- end
data/spec/database.yml DELETED
@@ -1,3 +0,0 @@
1
- sqlite3:
2
- adapter: sqlite3
3
- database: spec/aasm.sqlite3.db
data/spec/en.yml DELETED
@@ -1,12 +0,0 @@
1
- en:
2
- activerecord:
3
- events:
4
- localizer_test_model:
5
- close: "Let's close it!"
6
-
7
- attributes:
8
- localizer_test_model:
9
- aasm_state/opened: "It's open now!"
10
- errors:
11
- messages:
12
- record_invalid: "Invalid record"
@@ -1,10 +0,0 @@
1
- en:
2
- activerecord:
3
- events:
4
- localizer_test_model:
5
- close: "Let's close it!"
6
-
7
- attributes:
8
- localizer_test_model:
9
- aasm_state:
10
- opened: "It's open now!"
@@ -1,53 +0,0 @@
1
- require 'spec_helper'
2
-
3
- if defined?(ActiveRecord)
4
- require 'generator_spec'
5
- require 'generators/active_record/aasm_generator'
6
-
7
- describe ActiveRecord::Generators::AASMGenerator, type: :generator do
8
- destination File.expand_path("../../../tmp", __FILE__)
9
-
10
- before(:all) do
11
- prepare_destination
12
- end
13
-
14
- it "creates model with aasm block for default column_name" do
15
- run_generator %w(user)
16
- assert_file "app/models/user.rb", /include AASM\n\n aasm do\n end\n/
17
- end
18
-
19
- it "creates model with aasm block for custom column_name" do
20
- run_generator %w(user state)
21
- assert_file "app/models/user.rb", /aasm :column => 'state' do\n end\n/
22
- end
23
-
24
- it "creates model with aasm block for namespaced model" do
25
- run_generator %w(Admin::User state)
26
- assert_file "app/models/admin/user.rb", /aasm :column => 'state' do\n end\n/
27
- end
28
-
29
- it "creates migration for model with aasm_column" do
30
- run_generator %w(post)
31
- assert_migration "db/migrate/aasm_create_posts.rb", /create_table(:posts) do |t|\n t.string :aasm_state\n/
32
- end
33
-
34
- it "add aasm_column in existing model" do
35
- run_generator %w(job)
36
- assert_file "app/models/job.rb"
37
- run_generator %w(job)
38
- assert_migration "db/migrate/add_aasm_state_to_jobs.rb"
39
- end
40
-
41
- it "add custom aasm_column in existing model" do
42
- run_generator %w(job state)
43
- assert_migration "db/migrate/add_state_to_jobs.rb"
44
- end
45
-
46
- it "dont add column if column is already exists" do
47
- require 'models/active_record/work.rb'
48
- load_schema
49
- run_generator %w(work status)
50
- assert_no_migration "db/migrate/add_status_to_jobs.rb"
51
- end
52
- end
53
- end
@@ -1,31 +0,0 @@
1
- require 'spec_helper'
2
-
3
- if defined?(Mongoid::Document)
4
- require 'generator_spec'
5
- require 'generators/mongoid/aasm_generator'
6
-
7
- describe Mongoid::Generators::AASMGenerator, type: :generator do
8
- destination File.expand_path("../../../tmp", __FILE__)
9
-
10
- before(:all) do
11
- prepare_destination
12
- end
13
-
14
- it "creates model with aasm block for default column_name" do
15
- run_generator %w(user)
16
- assert_file "app/models/user.rb", /include AASM\n\n aasm do\n end\n/
17
- end
18
-
19
- it "creates model with aasm block for custom column_name" do
20
- run_generator %w(user state)
21
- assert_file "app/models/user.rb", /aasm :column => 'state' do\n end\n/
22
- end
23
-
24
- it "creates model with aasm block for namespaced model" do
25
- run_generator %w(Admin::User state)
26
- assert_file "app/models/admin/user.rb", /aasm :column => 'state' do\n end\n/
27
- end
28
-
29
- end
30
-
31
- end
@@ -1,29 +0,0 @@
1
- require 'spec_helper'
2
-
3
- if defined?(NoBrainer::Document)
4
- require 'generator_spec'
5
- require 'generators/nobrainer/aasm_generator'
6
-
7
- describe NoBrainer::Generators::AASMGenerator, type: :generator do
8
- destination File.expand_path('../../../tmp', __FILE__)
9
-
10
- before(:all) do
11
- prepare_destination
12
- end
13
-
14
- it 'creates model with aasm block for default column_name' do
15
- run_generator %w[user]
16
- assert_file 'app/models/user.rb', /include AASM\n\n aasm do\n end\n/
17
- end
18
-
19
- it 'creates model with aasm block for custom column_name' do
20
- run_generator %w[user state]
21
- assert_file 'app/models/user.rb', /aasm :column => 'state' do\n end\n/
22
- end
23
-
24
- it 'creates model with aasm block for namespaced model' do
25
- run_generator %w[Admin::User state]
26
- assert_file 'app/models/admin/user.rb', /aasm :column => 'state' do\n end\n/
27
- end
28
- end
29
- end
@@ -1,25 +0,0 @@
1
- class BasicActiveRecordTwoStateMachinesExample < ActiveRecord::Base
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 :synchronise do
22
- transitions :from => :unsynced, :to => :synced
23
- end
24
- end
25
- end
@@ -1,37 +0,0 @@
1
- class ComplexActiveRecordExample < ActiveRecord::Base
2
- include AASM
3
-
4
- aasm :left, :column => 'left' do
5
- state :one, :initial => true
6
- state :two
7
- state :three
8
-
9
- event :increment do
10
- transitions :from => :one, :to => :two, guard: :allowed?
11
- transitions :from => :two, :to => :three
12
- end
13
- event :reset do
14
- transitions :from => :three, :to => :one
15
- end
16
- end
17
-
18
- def allowed?
19
- true
20
- end
21
-
22
- aasm :right, :column => 'right' do
23
- state :alpha, :initial => true
24
- state :beta
25
- state :gamma
26
-
27
- event :level_up do
28
- transitions :from => :alpha, :to => :beta
29
- transitions :from => :beta, :to => :gamma
30
- end
31
- event :level_down do
32
- transitions :from => :gamma, :to => :beta
33
- transitions :from => :beta, :to => :alpha
34
- end
35
- end
36
-
37
- end
@@ -1,7 +0,0 @@
1
- require_relative 'simple_new_dsl'
2
-
3
- class DerivateNewDsl < SimpleNewDsl
4
- end
5
-
6
- class MultipleDerivateNewDsl < MultipleSimpleNewDsl
7
- end
@@ -1,35 +0,0 @@
1
- class FalseState < ActiveRecord::Base
2
- include AASM
3
-
4
- def initialize(*args)
5
- super
6
- self.aasm_state = false
7
- end
8
-
9
- aasm do
10
- state :opened
11
- state :closed
12
-
13
- event :view do
14
- transitions :to => :read, :from => [:needs_attention]
15
- end
16
- end
17
- end
18
-
19
- class MultipleFalseState < ActiveRecord::Base
20
- include AASM
21
-
22
- def initialize(*args)
23
- super
24
- self.aasm_state = false
25
- end
26
-
27
- aasm :left do
28
- state :opened
29
- state :closed
30
-
31
- event :view do
32
- transitions :to => :read, :from => [:needs_attention]
33
- end
34
- end
35
- end
@@ -1,39 +0,0 @@
1
- class Gate < 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 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 MultipleGate < 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, :column => :aasm_state 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,19 +0,0 @@
1
- class InstanceLevelSkipValidationExample < ActiveRecord::Base
2
- include AASM
3
-
4
- aasm :state do
5
- state :new, :initial => true
6
- state :draft
7
- state :complete
8
-
9
- event :set_draft do
10
- transitions from: :new, to: :draft
11
- end
12
-
13
- event :complete do
14
- transitions from: %i[draft new], to: :complete
15
- end
16
- end
17
-
18
- validates :some_string, presence: true
19
- end
@@ -1,29 +0,0 @@
1
- class InvalidPersistor < ActiveRecord::Base
2
- include AASM
3
- aasm :column => :status, :skip_validation_on_save => true 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 MultipleInvalidPersistor < ActiveRecord::Base
17
- include AASM
18
- aasm :left, :column => :status, :skip_validation_on_save => true 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,34 +0,0 @@
1
- class LocalizerTestModel < ActiveRecord::Base
2
- include AASM
3
-
4
- aasm do
5
- state :opened, :initial => true
6
- state :closed
7
- event :close
8
- event :open
9
- end
10
- end
11
-
12
- describe 'localized state names' do
13
- before(:all) do
14
- I18n.load_path << 'spec/en.yml'
15
- I18n.default_locale = :en
16
- I18n.reload!
17
- end
18
-
19
- after(:all) do
20
- I18n.load_path.clear
21
- end
22
-
23
- it 'should localize' do
24
- state = LocalizerTestModel.aasm.states.detect {|s| s == :opened}
25
- expect(state.localized_name).to eq("It's open now!")
26
- expect(state.human_name).to eq("It's open now!")
27
- end
28
-
29
- it 'should use fallback' do
30
- state = LocalizerTestModel.aasm.states.detect {|s| s == :closed}
31
- expect(state.localized_name).to eq('Closed')
32
- expect(state.human_name).to eq('Closed')
33
- end
34
- end
@@ -1,21 +0,0 @@
1
- class NoDirectAssignment < ActiveRecord::Base
2
- include AASM
3
- aasm :no_direct_assignment => true do
4
- state :pending, :initial => true
5
- state :running
6
- event :run do
7
- transitions :from => :pending, :to => :running
8
- end
9
- end
10
- end
11
-
12
- class MultipleNoDirectAssignment < ActiveRecord::Base
13
- include AASM
14
- aasm :left, :column => :aasm_state, :no_direct_assignment => true do
15
- state :pending, :initial => true
16
- state :running
17
- event :run do
18
- transitions :from => :pending, :to => :running
19
- end
20
- end
21
- end
@@ -1,21 +0,0 @@
1
- class NoScope < ActiveRecord::Base
2
- include AASM
3
- aasm :create_scopes => false do
4
- state :pending, :initial => true
5
- state :running
6
- event :run do
7
- transitions :from => :pending, :to => :running
8
- end
9
- end
10
- end
11
-
12
- class MultipleNoScope < ActiveRecord::Base
13
- include AASM
14
- aasm :left, :column => :aasm_state, :create_scopes => false do
15
- state :pending, :initial => true
16
- state :running
17
- event :run do
18
- transitions :from => :pending, :to => :running
19
- end
20
- end
21
- end
@@ -1,12 +0,0 @@
1
- class PersistedState < ActiveRecord::Base
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
- end
@@ -1,23 +0,0 @@
1
- class Base < ActiveRecord::Base
2
- include AASM
3
-
4
- aasm column: 'status' do
5
- state :inactive, initial: true
6
- state :active
7
-
8
- event :activate do
9
- transitions from: :inactive, to: :active
10
- end
11
-
12
- event :deactivate do
13
- transitions from: :active, to: :inactive
14
- end
15
- end
16
-
17
- self.abstract_class = true
18
- self.table_name = 'users'
19
- end
20
-
21
-
22
- class Person < Base
23
- end
@@ -1,24 +0,0 @@
1
- class ProvidedAndPersistedState < ActiveRecord::Base
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
- :gamma
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,7 +0,0 @@
1
- class Reader < ActiveRecord::Base
2
- include AASM
3
-
4
- def aasm_read_state
5
- "fi"
6
- end
7
- end
@@ -1,21 +0,0 @@
1
- class ReadmeJob < ActiveRecord::Base
2
- include AASM
3
-
4
- aasm do
5
- state :sleeping, :initial => true
6
- state :running
7
- state :cleaning
8
-
9
- event :run do
10
- transitions :from => :sleeping, :to => :running
11
- end
12
-
13
- event :clean do
14
- transitions :from => :running, :to => :cleaning
15
- end
16
-
17
- event :sleep do
18
- transitions :from => [:running, :cleaning], :to => :sleeping
19
- end
20
- end
21
- end