aasm 4.5.1 → 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.
- checksums.yaml +5 -5
- data/LICENSE +1 -1
- data/README.md +809 -129
- data/lib/aasm/aasm.rb +74 -37
- data/lib/aasm/base.rb +188 -41
- data/lib/aasm/configuration.rb +27 -2
- data/lib/aasm/core/event.rb +75 -47
- data/lib/aasm/core/invoker.rb +129 -0
- data/lib/aasm/core/invokers/base_invoker.rb +75 -0
- data/lib/aasm/core/invokers/class_invoker.rb +52 -0
- data/lib/aasm/core/invokers/literal_invoker.rb +49 -0
- data/lib/aasm/core/invokers/proc_invoker.rb +59 -0
- data/lib/aasm/core/state.rb +22 -13
- data/lib/aasm/core/transition.rb +30 -23
- data/lib/aasm/dsl_helper.rb +24 -22
- data/lib/aasm/errors.rb +8 -5
- data/lib/aasm/instance_base.rb +63 -15
- data/lib/aasm/localizer.rb +13 -3
- data/lib/aasm/minitest/allow_event.rb +13 -0
- data/lib/aasm/minitest/allow_transition_to.rb +13 -0
- data/lib/aasm/minitest/have_state.rb +13 -0
- data/lib/aasm/minitest/transition_from.rb +21 -0
- data/lib/aasm/minitest.rb +5 -0
- data/lib/aasm/minitest_spec.rb +15 -0
- data/lib/aasm/persistence/active_record_persistence.rb +87 -79
- data/lib/aasm/persistence/base.rb +30 -30
- data/lib/aasm/persistence/core_data_query_persistence.rb +94 -0
- data/lib/aasm/persistence/dynamoid_persistence.rb +92 -0
- data/lib/aasm/persistence/mongoid_persistence.rb +49 -35
- data/lib/aasm/persistence/no_brainer_persistence.rb +105 -0
- data/lib/aasm/persistence/orm.rb +154 -0
- data/lib/aasm/persistence/plain_persistence.rb +2 -1
- data/lib/aasm/persistence/redis_persistence.rb +112 -0
- data/lib/aasm/persistence/sequel_persistence.rb +37 -67
- data/lib/aasm/persistence.rb +20 -5
- data/lib/aasm/rspec/allow_event.rb +5 -1
- data/lib/aasm/rspec/allow_transition_to.rb +5 -1
- data/lib/aasm/rspec/transition_from.rb +8 -4
- data/lib/aasm/state_machine.rb +6 -12
- data/lib/aasm/state_machine_store.rb +76 -0
- data/lib/aasm/version.rb +1 -1
- data/lib/aasm.rb +8 -2
- data/lib/generators/aasm/aasm_generator.rb +16 -0
- data/lib/generators/aasm/orm_helpers.rb +41 -0
- data/lib/generators/active_record/aasm_generator.rb +40 -0
- data/lib/generators/active_record/templates/migration.rb +8 -0
- data/lib/generators/active_record/templates/migration_existing.rb +5 -0
- data/lib/generators/mongoid/aasm_generator.rb +28 -0
- data/lib/generators/nobrainer/aasm_generator.rb +28 -0
- data/lib/motion-aasm.rb +37 -0
- metadata +104 -259
- data/.document +0 -6
- data/.gitignore +0 -19
- data/.travis.yml +0 -37
- data/API +0 -34
- data/CHANGELOG.md +0 -272
- data/CODE_OF_CONDUCT.md +0 -13
- data/Gemfile +0 -15
- data/HOWTO +0 -12
- data/PLANNED_CHANGES.md +0 -11
- data/README_FROM_VERSION_3_TO_4.md +0 -240
- data/Rakefile +0 -26
- data/aasm.gemspec +0 -31
- data/callbacks.txt +0 -51
- data/gemfiles/rails_3.2.gemfile +0 -14
- data/gemfiles/rails_4.0.gemfile +0 -12
- data/gemfiles/rails_4.0_mongo_mapper.gemfile +0 -14
- data/gemfiles/rails_4.1.gemfile +0 -12
- data/gemfiles/rails_4.1_mongo_mapper.gemfile +0 -14
- data/gemfiles/rails_4.2.gemfile +0 -12
- data/gemfiles/rails_4.2_mongo_mapper.gemfile +0 -14
- data/gemfiles/rails_4.2_mongoid_5.gemfile +0 -12
- data/lib/aasm/persistence/mongo_mapper_persistence.rb +0 -157
- data/spec/database.rb +0 -63
- data/spec/database.yml +0 -3
- data/spec/en.yml +0 -9
- data/spec/en_deprecated_style.yml +0 -10
- data/spec/models/active_record/basic_active_record_two_state_machines_example.rb +0 -25
- data/spec/models/active_record/complex_active_record_example.rb +0 -33
- data/spec/models/active_record/derivate_new_dsl.rb +0 -7
- data/spec/models/active_record/false_state.rb +0 -35
- data/spec/models/active_record/gate.rb +0 -39
- data/spec/models/active_record/localizer_test_model.rb +0 -34
- data/spec/models/active_record/no_direct_assignment.rb +0 -21
- data/spec/models/active_record/no_scope.rb +0 -21
- data/spec/models/active_record/persisted_state.rb +0 -12
- data/spec/models/active_record/provided_and_persisted_state.rb +0 -24
- data/spec/models/active_record/reader.rb +0 -7
- data/spec/models/active_record/readme_job.rb +0 -21
- data/spec/models/active_record/simple_new_dsl.rb +0 -17
- data/spec/models/active_record/thief.rb +0 -29
- data/spec/models/active_record/transient.rb +0 -6
- data/spec/models/active_record/with_enum.rb +0 -39
- data/spec/models/active_record/with_false_enum.rb +0 -31
- data/spec/models/active_record/with_true_enum.rb +0 -39
- data/spec/models/active_record/writer.rb +0 -6
- data/spec/models/basic_two_state_machines_example.rb +0 -25
- data/spec/models/callbacks/basic.rb +0 -78
- data/spec/models/callbacks/basic_multiple.rb +0 -75
- data/spec/models/callbacks/guard_within_block.rb +0 -66
- data/spec/models/callbacks/guard_within_block_multiple.rb +0 -66
- data/spec/models/callbacks/multiple_transitions_transition_guard.rb +0 -65
- data/spec/models/callbacks/multiple_transitions_transition_guard_multiple.rb +0 -65
- data/spec/models/callbacks/private_method.rb +0 -44
- data/spec/models/callbacks/private_method_multiple.rb +0 -44
- data/spec/models/callbacks/with_args.rb +0 -61
- data/spec/models/callbacks/with_args_multiple.rb +0 -61
- data/spec/models/callbacks/with_state_arg.rb +0 -26
- data/spec/models/callbacks/with_state_arg_multiple.rb +0 -26
- data/spec/models/complex_example.rb +0 -222
- data/spec/models/conversation.rb +0 -93
- data/spec/models/default_state.rb +0 -12
- data/spec/models/double_definer.rb +0 -21
- data/spec/models/foo.rb +0 -92
- data/spec/models/foo_callback_multiple.rb +0 -45
- data/spec/models/guardian.rb +0 -48
- data/spec/models/guardian_multiple.rb +0 -48
- data/spec/models/initial_state_proc.rb +0 -31
- data/spec/models/invalid_persistor.rb +0 -31
- data/spec/models/mongo_mapper/complex_mongo_mapper_example.rb +0 -37
- data/spec/models/mongo_mapper/no_scope_mongo_mapper.rb +0 -21
- data/spec/models/mongo_mapper/simple_mongo_mapper.rb +0 -23
- data/spec/models/mongo_mapper/simple_new_dsl_mongo_mapper.rb +0 -25
- data/spec/models/mongoid/complex_mongoid_example.rb +0 -37
- data/spec/models/mongoid/no_scope_mongoid.rb +0 -21
- data/spec/models/mongoid/simple_mongoid.rb +0 -23
- data/spec/models/mongoid/simple_new_dsl_mongoid.rb +0 -25
- data/spec/models/no_initial_state.rb +0 -25
- data/spec/models/not_auto_loaded/process.rb +0 -21
- data/spec/models/parametrised_event.rb +0 -29
- data/spec/models/parametrised_event_multiple.rb +0 -29
- data/spec/models/process_with_new_dsl.rb +0 -31
- data/spec/models/provided_state.rb +0 -24
- data/spec/models/sequel/complex_sequel_example.rb +0 -45
- data/spec/models/sequel/sequel_multiple.rb +0 -25
- data/spec/models/sequel/sequel_simple.rb +0 -25
- data/spec/models/silencer.rb +0 -27
- data/spec/models/simple_example.rb +0 -15
- data/spec/models/simple_multiple_example.rb +0 -30
- data/spec/models/state_machine_with_failed_event.rb +0 -12
- data/spec/models/sub_class.rb +0 -7
- data/spec/models/sub_class_with_more_states.rb +0 -18
- data/spec/models/sub_classing.rb +0 -3
- data/spec/models/super_class.rb +0 -46
- data/spec/models/this_name_better_not_be_in_use.rb +0 -11
- data/spec/models/transactor.rb +0 -53
- data/spec/models/valid_state_name.rb +0 -23
- data/spec/models/validator.rb +0 -79
- data/spec/models/worker.rb +0 -2
- data/spec/spec_helper.rb +0 -25
- data/spec/unit/api_spec.rb +0 -77
- data/spec/unit/basic_two_state_machines_example_spec.rb +0 -10
- data/spec/unit/callback_multiple_spec.rb +0 -295
- data/spec/unit/callbacks_spec.rb +0 -296
- data/spec/unit/complex_example_spec.rb +0 -84
- data/spec/unit/complex_multiple_example_spec.rb +0 -99
- data/spec/unit/edge_cases_spec.rb +0 -16
- data/spec/unit/event_multiple_spec.rb +0 -73
- data/spec/unit/event_naming_spec.rb +0 -11
- data/spec/unit/event_spec.rb +0 -322
- data/spec/unit/guard_multiple_spec.rb +0 -60
- data/spec/unit/guard_spec.rb +0 -60
- data/spec/unit/initial_state_multiple_spec.rb +0 -15
- data/spec/unit/initial_state_spec.rb +0 -12
- data/spec/unit/inspection_multiple_spec.rb +0 -201
- data/spec/unit/inspection_spec.rb +0 -111
- data/spec/unit/localizer_spec.rb +0 -76
- data/spec/unit/memory_leak_spec.rb +0 -38
- data/spec/unit/new_dsl_spec.rb +0 -12
- data/spec/unit/persistence/active_record_persistence_multiple_spec.rb +0 -573
- data/spec/unit/persistence/active_record_persistence_spec.rb +0 -552
- data/spec/unit/persistence/mongo_mapper_persistence_multiple_spec.rb +0 -146
- data/spec/unit/persistence/mongo_mapper_persistence_spec.rb +0 -93
- data/spec/unit/persistence/mongoid_persistence_multiple_spec.rb +0 -127
- data/spec/unit/persistence/mongoid_persistence_spec.rb +0 -79
- data/spec/unit/persistence/sequel_persistence_multiple_spec.rb +0 -153
- data/spec/unit/persistence/sequel_persistence_spec.rb +0 -100
- data/spec/unit/readme_spec.rb +0 -42
- data/spec/unit/reloading_spec.rb +0 -15
- data/spec/unit/rspec_matcher_spec.rb +0 -79
- data/spec/unit/simple_example_spec.rb +0 -42
- data/spec/unit/simple_multiple_example_spec.rb +0 -63
- data/spec/unit/state_spec.rb +0 -89
- data/spec/unit/subclassing_multiple_spec.rb +0 -39
- data/spec/unit/subclassing_spec.rb +0 -31
- data/spec/unit/transition_spec.rb +0 -291
data/spec/models/guardian.rb
DELETED
@@ -1,48 +0,0 @@
|
|
1
|
-
class Guardian
|
2
|
-
include AASM
|
3
|
-
|
4
|
-
aasm do
|
5
|
-
state :alpha, :initial => true
|
6
|
-
state :beta
|
7
|
-
|
8
|
-
event :use_one_guard_that_succeeds do
|
9
|
-
transitions :from => :alpha, :to => :beta, :guard => :succeed
|
10
|
-
end
|
11
|
-
event :use_one_guard_that_fails do
|
12
|
-
transitions :from => :alpha, :to => :beta, :guard => :fail
|
13
|
-
end
|
14
|
-
|
15
|
-
event :use_guards_that_succeed do
|
16
|
-
transitions :from => :alpha, :to => :beta, :guards => [:succeed, :another_succeed]
|
17
|
-
end
|
18
|
-
event :use_guards_where_the_first_fails do
|
19
|
-
transitions :from => :alpha, :to => :beta, :guards => [:succeed, :fail]
|
20
|
-
end
|
21
|
-
event :use_guards_where_the_second_fails do
|
22
|
-
transitions :from => :alpha, :to => :beta, :guards => [:fail, :succeed]
|
23
|
-
end
|
24
|
-
|
25
|
-
event :use_event_guards_that_succeed, :guards => [:succeed, :another_succeed] do
|
26
|
-
transitions :from => :alpha, :to => :beta
|
27
|
-
end
|
28
|
-
event :use_event_and_transition_guards_that_succeed, :guards => [:succeed, :another_succeed] do
|
29
|
-
transitions :from => :alpha, :to => :beta, :guards => [:more_succeed]
|
30
|
-
end
|
31
|
-
event :use_event_guards_where_the_first_fails, :guards => [:succeed, :fail] do
|
32
|
-
transitions :from => :alpha, :to => :beta
|
33
|
-
end
|
34
|
-
event :use_event_guards_where_the_second_fails, :guards => [:fail, :succeed] do
|
35
|
-
transitions :from => :alpha, :to => :beta, :guard => :another_succeed
|
36
|
-
end
|
37
|
-
event :use_event_and_transition_guards_where_third_fails, :guards => [:succeed, :another_succeed] do
|
38
|
-
transitions :from => :alpha, :to => :beta, :guards => [:fail]
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
def fail; false; end
|
43
|
-
|
44
|
-
def succeed; true; end
|
45
|
-
def another_succeed; true; end
|
46
|
-
def more_succeed; true; end
|
47
|
-
|
48
|
-
end
|
@@ -1,48 +0,0 @@
|
|
1
|
-
class GuardianMultiple
|
2
|
-
include AASM
|
3
|
-
|
4
|
-
aasm(:left) do
|
5
|
-
state :alpha, :initial => true
|
6
|
-
state :beta
|
7
|
-
|
8
|
-
event :use_one_guard_that_succeeds do
|
9
|
-
transitions :from => :alpha, :to => :beta, :guard => :succeed
|
10
|
-
end
|
11
|
-
event :use_one_guard_that_fails do
|
12
|
-
transitions :from => :alpha, :to => :beta, :guard => :fail
|
13
|
-
end
|
14
|
-
|
15
|
-
event :use_guards_that_succeed do
|
16
|
-
transitions :from => :alpha, :to => :beta, :guards => [:succeed, :another_succeed]
|
17
|
-
end
|
18
|
-
event :use_guards_where_the_first_fails do
|
19
|
-
transitions :from => :alpha, :to => :beta, :guards => [:succeed, :fail]
|
20
|
-
end
|
21
|
-
event :use_guards_where_the_second_fails do
|
22
|
-
transitions :from => :alpha, :to => :beta, :guards => [:fail, :succeed]
|
23
|
-
end
|
24
|
-
|
25
|
-
event :use_event_guards_that_succeed, :guards => [:succeed, :another_succeed] do
|
26
|
-
transitions :from => :alpha, :to => :beta
|
27
|
-
end
|
28
|
-
event :use_event_and_transition_guards_that_succeed, :guards => [:succeed, :another_succeed] do
|
29
|
-
transitions :from => :alpha, :to => :beta, :guards => [:more_succeed]
|
30
|
-
end
|
31
|
-
event :use_event_guards_where_the_first_fails, :guards => [:succeed, :fail] do
|
32
|
-
transitions :from => :alpha, :to => :beta
|
33
|
-
end
|
34
|
-
event :use_event_guards_where_the_second_fails, :guards => [:fail, :succeed] do
|
35
|
-
transitions :from => :alpha, :to => :beta, :guard => :another_succeed
|
36
|
-
end
|
37
|
-
event :use_event_and_transition_guards_where_third_fails, :guards => [:succeed, :another_succeed] do
|
38
|
-
transitions :from => :alpha, :to => :beta, :guards => [:fail]
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
def fail; false; end
|
43
|
-
|
44
|
-
def succeed; true; end
|
45
|
-
def another_succeed; true; end
|
46
|
-
def more_succeed; true; end
|
47
|
-
|
48
|
-
end
|
@@ -1,31 +0,0 @@
|
|
1
|
-
class InitialStateProc
|
2
|
-
RICH = 1_000_000
|
3
|
-
|
4
|
-
attr_accessor :balance
|
5
|
-
|
6
|
-
include AASM
|
7
|
-
aasm do
|
8
|
-
state :retired
|
9
|
-
state :selling_bad_mortgages
|
10
|
-
initial_state Proc.new { |banker| banker.rich? ? :retired : :selling_bad_mortgages }
|
11
|
-
end
|
12
|
-
|
13
|
-
def initialize(balance = 0); self.balance = balance; end
|
14
|
-
def rich?; self.balance >= RICH; end
|
15
|
-
end
|
16
|
-
|
17
|
-
class InitialStateProcMultiple
|
18
|
-
RICH = 1_000_000
|
19
|
-
|
20
|
-
attr_accessor :balance
|
21
|
-
|
22
|
-
include AASM
|
23
|
-
aasm(:left) do
|
24
|
-
state :retired
|
25
|
-
state :selling_bad_mortgages
|
26
|
-
initial_state Proc.new { |banker| banker.rich? ? :retired : :selling_bad_mortgages }
|
27
|
-
end
|
28
|
-
|
29
|
-
def initialize(balance = 0); self.balance = balance; end
|
30
|
-
def rich?; self.balance >= RICH; end
|
31
|
-
end
|
@@ -1,31 +0,0 @@
|
|
1
|
-
require 'active_record'
|
2
|
-
|
3
|
-
class InvalidPersistor < ActiveRecord::Base
|
4
|
-
include AASM
|
5
|
-
aasm :column => :status, :skip_validation_on_save => true do
|
6
|
-
state :sleeping, :initial => true
|
7
|
-
state :running
|
8
|
-
event :run do
|
9
|
-
transitions :to => :running, :from => :sleeping
|
10
|
-
end
|
11
|
-
event :sleep do
|
12
|
-
transitions :to => :sleeping, :from => :running
|
13
|
-
end
|
14
|
-
end
|
15
|
-
validates_presence_of :name
|
16
|
-
end
|
17
|
-
|
18
|
-
class MultipleInvalidPersistor < ActiveRecord::Base
|
19
|
-
include AASM
|
20
|
-
aasm :left, :column => :status, :skip_validation_on_save => true do
|
21
|
-
state :sleeping, :initial => true
|
22
|
-
state :running
|
23
|
-
event :run do
|
24
|
-
transitions :to => :running, :from => :sleeping
|
25
|
-
end
|
26
|
-
event :sleep do
|
27
|
-
transitions :to => :sleeping, :from => :running
|
28
|
-
end
|
29
|
-
end
|
30
|
-
validates_presence_of :name
|
31
|
-
end
|
@@ -1,37 +0,0 @@
|
|
1
|
-
class ComplexMongoMapperExample
|
2
|
-
include MongoMapper::Document
|
3
|
-
include AASM
|
4
|
-
|
5
|
-
key :left, String
|
6
|
-
key :right, String
|
7
|
-
|
8
|
-
aasm :left, :column => 'left' do
|
9
|
-
state :one, :initial => true
|
10
|
-
state :two
|
11
|
-
state :three
|
12
|
-
|
13
|
-
event :increment do
|
14
|
-
transitions :from => :one, :to => :two
|
15
|
-
transitions :from => :two, :to => :three
|
16
|
-
end
|
17
|
-
event :reset do
|
18
|
-
transitions :from => :three, :to => :one
|
19
|
-
end
|
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,21 +0,0 @@
|
|
1
|
-
class NoScopeMongoMapper
|
2
|
-
include MongoMapper::Document
|
3
|
-
include AASM
|
4
|
-
|
5
|
-
key :status, String
|
6
|
-
|
7
|
-
aasm :create_scopes => false, :column => :status do
|
8
|
-
state :ignored_scope
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
class NoScopeMongoMapperMultiple
|
13
|
-
include MongoMapper::Document
|
14
|
-
include AASM
|
15
|
-
|
16
|
-
key :status, String
|
17
|
-
|
18
|
-
aasm :left, :create_scopes => false, :column => :status do
|
19
|
-
state :ignored_scope
|
20
|
-
end
|
21
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
class SimpleMongoMapper
|
2
|
-
include MongoMapper::Document
|
3
|
-
include AASM
|
4
|
-
|
5
|
-
key :status, String
|
6
|
-
|
7
|
-
aasm column: :status do
|
8
|
-
state :unknown_scope
|
9
|
-
state :next
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
class SimpleMongoMapperMultiple
|
14
|
-
include MongoMapper::Document
|
15
|
-
include AASM
|
16
|
-
|
17
|
-
key :status, String
|
18
|
-
|
19
|
-
aasm :left, column: :status do
|
20
|
-
state :unknown_scope
|
21
|
-
state :next
|
22
|
-
end
|
23
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
class SimpleNewDslMongoMapper
|
2
|
-
include MongoMapper::Document
|
3
|
-
include AASM
|
4
|
-
|
5
|
-
key :status, String
|
6
|
-
|
7
|
-
aasm :column => :status
|
8
|
-
aasm do
|
9
|
-
state :unknown_scope
|
10
|
-
state :next
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
class SimpleNewDslMongoMapperMultiple
|
15
|
-
include MongoMapper::Document
|
16
|
-
include AASM
|
17
|
-
|
18
|
-
key :status, String
|
19
|
-
|
20
|
-
aasm :left, :column => :status
|
21
|
-
aasm :left do
|
22
|
-
state :unknown_scope
|
23
|
-
state :next
|
24
|
-
end
|
25
|
-
end
|
@@ -1,37 +0,0 @@
|
|
1
|
-
class ComplexMongoidExample
|
2
|
-
include Mongoid::Document
|
3
|
-
include AASM
|
4
|
-
|
5
|
-
field :left, :type => String
|
6
|
-
field :right, :type => String
|
7
|
-
|
8
|
-
aasm :left, :column => 'left' do
|
9
|
-
state :one, :initial => true
|
10
|
-
state :two
|
11
|
-
state :three
|
12
|
-
|
13
|
-
event :increment do
|
14
|
-
transitions :from => :one, :to => :two
|
15
|
-
transitions :from => :two, :to => :three
|
16
|
-
end
|
17
|
-
event :reset do
|
18
|
-
transitions :from => :three, :to => :one
|
19
|
-
end
|
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,21 +0,0 @@
|
|
1
|
-
class NoScopeMongoid
|
2
|
-
include Mongoid::Document
|
3
|
-
include AASM
|
4
|
-
|
5
|
-
field :status, :type => String
|
6
|
-
|
7
|
-
aasm :create_scopes => false, :column => :status do
|
8
|
-
state :ignored_scope
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
class NoScopeMongoidMultiple
|
13
|
-
include Mongoid::Document
|
14
|
-
include AASM
|
15
|
-
|
16
|
-
field :status, :type => String
|
17
|
-
|
18
|
-
aasm :left, :create_scopes => false, :column => :status do
|
19
|
-
state :ignored_scope
|
20
|
-
end
|
21
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
class SimpleMongoid
|
2
|
-
include Mongoid::Document
|
3
|
-
include AASM
|
4
|
-
|
5
|
-
field :status, :type => String
|
6
|
-
|
7
|
-
aasm column: :status do
|
8
|
-
state :unknown_scope
|
9
|
-
state :new
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
class SimpleMongoidMultiple
|
14
|
-
include Mongoid::Document
|
15
|
-
include AASM
|
16
|
-
|
17
|
-
field :status, :type => String
|
18
|
-
|
19
|
-
aasm :left, column: :status do
|
20
|
-
state :unknown_scope
|
21
|
-
state :new
|
22
|
-
end
|
23
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
class SimpleNewDslMongoid
|
2
|
-
include Mongoid::Document
|
3
|
-
include AASM
|
4
|
-
|
5
|
-
field :status, :type => String
|
6
|
-
|
7
|
-
aasm :column => :status
|
8
|
-
aasm do
|
9
|
-
state :unknown_scope, :initial => true
|
10
|
-
state :new
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
class SimpleNewDslMongoidMultiple
|
15
|
-
include Mongoid::Document
|
16
|
-
include AASM
|
17
|
-
|
18
|
-
field :status, :type => String
|
19
|
-
|
20
|
-
aasm :left, :column => :status
|
21
|
-
aasm :left do
|
22
|
-
state :unknown_scope, :initial => true
|
23
|
-
state :new
|
24
|
-
end
|
25
|
-
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,29 +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 :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,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,45 +0,0 @@
|
|
1
|
-
db = 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
|
-
class ComplexSequelExample < Sequel::Model(db)
|
12
|
-
set_dataset(: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
|
@@ -1,25 +0,0 @@
|
|
1
|
-
db = 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
|
-
|
10
|
-
class SequelMultiple < Sequel::Model(db)
|
11
|
-
set_dataset(:multiples)
|
12
|
-
include AASM
|
13
|
-
|
14
|
-
attr_accessor :default
|
15
|
-
|
16
|
-
aasm :left, :column => :status
|
17
|
-
aasm :left 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
|
@@ -1,25 +0,0 @@
|
|
1
|
-
db = 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
|
-
class SequelSimple < Sequel::Model(db)
|
11
|
-
set_dataset(: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
|
data/spec/models/silencer.rb
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
class Silencer
|
2
|
-
include AASM
|
3
|
-
|
4
|
-
# yes, this line is here on purpose
|
5
|
-
# by this, we test if overriding configuration options works if
|
6
|
-
# the state machine is "re-opened"
|
7
|
-
aasm :whiny_transitions => true
|
8
|
-
|
9
|
-
aasm :whiny_transitions => false do
|
10
|
-
state :silent, :initial => true
|
11
|
-
state :crying
|
12
|
-
state :smiling
|
13
|
-
|
14
|
-
event :cry do
|
15
|
-
transitions :from => :silent, :to => :crying
|
16
|
-
end
|
17
|
-
|
18
|
-
event :smile do
|
19
|
-
transitions :from => :crying, :to => :smiling
|
20
|
-
end
|
21
|
-
|
22
|
-
event :smile_any do
|
23
|
-
transitions :to => :smiling
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
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
|