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
@@ -1,29 +0,0 @@
|
|
1
|
-
class Thief < ActiveRecord::Base
|
2
|
-
if ActiveRecord::VERSION::MAJOR >= 3
|
3
|
-
self.table_name = 'thieves'
|
4
|
-
else
|
5
|
-
set_table_name "thieves"
|
6
|
-
end
|
7
|
-
include AASM
|
8
|
-
aasm do
|
9
|
-
state :rich
|
10
|
-
state :jailed
|
11
|
-
initial_state Proc.new {|thief| thief.skilled ? :rich : :jailed }
|
12
|
-
end
|
13
|
-
attr_accessor :skilled, :aasm_state
|
14
|
-
end
|
15
|
-
|
16
|
-
class MultipleThief < ActiveRecord::Base
|
17
|
-
if ActiveRecord::VERSION::MAJOR >= 3
|
18
|
-
self.table_name = 'multiple_thieves'
|
19
|
-
else
|
20
|
-
set_table_name "multiple_thieves"
|
21
|
-
end
|
22
|
-
include AASM
|
23
|
-
aasm :left, :column => :aasm_state do
|
24
|
-
state :rich
|
25
|
-
state :jailed
|
26
|
-
initial_state Proc.new {|thief| thief.skilled ? :rich : :jailed }
|
27
|
-
end
|
28
|
-
attr_accessor :skilled, :aasm_state
|
29
|
-
end
|
@@ -1,39 +0,0 @@
|
|
1
|
-
class WithEnum < ActiveRecord::Base
|
2
|
-
include AASM
|
3
|
-
|
4
|
-
# Fake this column for testing purposes
|
5
|
-
attr_accessor :aasm_state
|
6
|
-
|
7
|
-
def self.test
|
8
|
-
{}
|
9
|
-
end
|
10
|
-
|
11
|
-
aasm :enum => :test do
|
12
|
-
state :opened
|
13
|
-
state :closed
|
14
|
-
|
15
|
-
event :view do
|
16
|
-
transitions :to => :read, :from => [:needs_attention]
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
class MultipleWithEnum < ActiveRecord::Base
|
22
|
-
include AASM
|
23
|
-
|
24
|
-
# Fake this column for testing purposes
|
25
|
-
attr_accessor :aasm_state
|
26
|
-
|
27
|
-
def self.test
|
28
|
-
{}
|
29
|
-
end
|
30
|
-
|
31
|
-
aasm :left, :enum => :test do
|
32
|
-
state :opened
|
33
|
-
state :closed
|
34
|
-
|
35
|
-
event :view do
|
36
|
-
transitions :to => :read, :from => [:needs_attention]
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
@@ -1,31 +0,0 @@
|
|
1
|
-
class WithFalseEnum < ActiveRecord::Base
|
2
|
-
include AASM
|
3
|
-
|
4
|
-
# Fake this column for testing purposes
|
5
|
-
attr_accessor :aasm_state
|
6
|
-
|
7
|
-
aasm :enum => false do
|
8
|
-
state :opened
|
9
|
-
state :closed
|
10
|
-
|
11
|
-
event :view do
|
12
|
-
transitions :to => :read, :from => [:needs_attention]
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
class MultipleWithFalseEnum < ActiveRecord::Base
|
18
|
-
include AASM
|
19
|
-
|
20
|
-
# Fake this column for testing purposes
|
21
|
-
attr_accessor :aasm_state
|
22
|
-
|
23
|
-
aasm :left, :enum => false do
|
24
|
-
state :opened
|
25
|
-
state :closed
|
26
|
-
|
27
|
-
event :view do
|
28
|
-
transitions :to => :read, :from => [:needs_attention]
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
@@ -1,39 +0,0 @@
|
|
1
|
-
class WithTrueEnum < ActiveRecord::Base
|
2
|
-
include AASM
|
3
|
-
|
4
|
-
# Fake this column for testing purposes
|
5
|
-
attr_accessor :aasm_state
|
6
|
-
|
7
|
-
def value
|
8
|
-
'value'
|
9
|
-
end
|
10
|
-
|
11
|
-
aasm :enum => true do
|
12
|
-
state :opened
|
13
|
-
state :closed
|
14
|
-
|
15
|
-
event :view do
|
16
|
-
transitions :to => :read, :from => [:needs_attention]
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
class MultipleWithTrueEnum < ActiveRecord::Base
|
22
|
-
include AASM
|
23
|
-
|
24
|
-
# Fake this column for testing purposes
|
25
|
-
attr_accessor :aasm_state
|
26
|
-
|
27
|
-
def value
|
28
|
-
'value'
|
29
|
-
end
|
30
|
-
|
31
|
-
aasm :left, :enum => true do
|
32
|
-
state :opened
|
33
|
-
state :closed
|
34
|
-
|
35
|
-
event :view do
|
36
|
-
transitions :to => :read, :from => [:needs_attention]
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
class BasicTwoStateMachinesExample
|
2
|
-
include AASM
|
3
|
-
|
4
|
-
aasm :search do
|
5
|
-
state :initialised, :initial => true
|
6
|
-
state :queried
|
7
|
-
state :requested
|
8
|
-
|
9
|
-
event :query do
|
10
|
-
transitions :from => [:initialised, :requested], :to => :queried
|
11
|
-
end
|
12
|
-
event :request do
|
13
|
-
transitions :from => :queried, :to => :requested
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
aasm :sync do
|
18
|
-
state :unsynced, :initial => true
|
19
|
-
state :synced
|
20
|
-
|
21
|
-
event :sync do
|
22
|
-
transitions :from => :unsynced, :to => :synced
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
@@ -1,78 +0,0 @@
|
|
1
|
-
module Callbacks
|
2
|
-
class Basic
|
3
|
-
include AASM
|
4
|
-
|
5
|
-
def initialize(options={})
|
6
|
-
@fail_event_guard = options[:fail_event_guard]
|
7
|
-
@fail_transition_guard = options[:fail_transition_guard]
|
8
|
-
@log = options[:log]
|
9
|
-
reset_data
|
10
|
-
end
|
11
|
-
|
12
|
-
def reset_data
|
13
|
-
@data = []
|
14
|
-
end
|
15
|
-
|
16
|
-
def data
|
17
|
-
@data.join(' ')
|
18
|
-
end
|
19
|
-
|
20
|
-
aasm do
|
21
|
-
after_all_transitions :after_all_transitions
|
22
|
-
|
23
|
-
state :open, :initial => true,
|
24
|
-
:before_enter => :before_enter_open,
|
25
|
-
:enter => :enter_open,
|
26
|
-
:after_enter => :after_enter_open,
|
27
|
-
:before_exit => :before_exit_open,
|
28
|
-
:exit => :exit_open,
|
29
|
-
:after_exit => :after_exit_open
|
30
|
-
|
31
|
-
state :closed,
|
32
|
-
:before_enter => :before_enter_closed,
|
33
|
-
:enter => :enter_closed,
|
34
|
-
:after_enter => :after_enter_closed,
|
35
|
-
:before_exit => :before_exit_closed,
|
36
|
-
:exit => :exit_closed,
|
37
|
-
:after_exit => :after_exit_closed
|
38
|
-
|
39
|
-
event :close, :before => :before_event, :after => :after_event, :guard => :event_guard do
|
40
|
-
transitions :to => :closed, :from => [:open], :guard => :transition_guard, :after => :after_transition
|
41
|
-
end
|
42
|
-
|
43
|
-
event :open, :before => :before_event, :after => :after_event do
|
44
|
-
transitions :to => :open, :from => :closed
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
def log(text)
|
49
|
-
@data << text
|
50
|
-
puts text if @log
|
51
|
-
end
|
52
|
-
|
53
|
-
def aasm_write_state(*args); log('aasm_write_state'); true; end
|
54
|
-
|
55
|
-
def before_enter_open; log('before_enter_open'); end
|
56
|
-
def enter_open; log('enter_open'); end
|
57
|
-
def before_exit_open; log('before_exit_open'); end
|
58
|
-
def after_enter_open; log('after_enter_open'); end
|
59
|
-
def exit_open; log('exit_open'); end
|
60
|
-
def after_exit_open; log('after_exit_open'); end
|
61
|
-
|
62
|
-
def before_enter_closed; log('before_enter_closed'); end
|
63
|
-
def enter_closed; log('enter_closed'); end
|
64
|
-
def before_exit_closed; log('before_exit_closed'); end
|
65
|
-
def exit_closed; log('exit_closed'); end
|
66
|
-
def after_enter_closed; log('after_enter_closed'); end
|
67
|
-
def after_exit_closed; log('after_exit_closed'); end
|
68
|
-
|
69
|
-
def event_guard; log('event_guard'); !@fail_event_guard; end
|
70
|
-
def transition_guard; log('transition_guard'); !@fail_transition_guard; end
|
71
|
-
|
72
|
-
def after_transition; log('after_transition'); end
|
73
|
-
def after_all_transitions;log('after_all_transitions');end
|
74
|
-
|
75
|
-
def before_event; log('before_event'); end
|
76
|
-
def after_event; log('after_event'); end
|
77
|
-
end
|
78
|
-
end
|
@@ -1,75 +0,0 @@
|
|
1
|
-
module Callbacks
|
2
|
-
class BasicMultiple
|
3
|
-
include AASM
|
4
|
-
|
5
|
-
def initialize(options={})
|
6
|
-
@fail_event_guard = options[:fail_event_guard]
|
7
|
-
@fail_transition_guard = options[:fail_transition_guard]
|
8
|
-
@log = options[:log]
|
9
|
-
reset_data
|
10
|
-
end
|
11
|
-
|
12
|
-
def reset_data
|
13
|
-
@data = []
|
14
|
-
end
|
15
|
-
|
16
|
-
def data
|
17
|
-
@data.join(' ')
|
18
|
-
end
|
19
|
-
|
20
|
-
aasm(:left) do
|
21
|
-
state :open, :initial => true,
|
22
|
-
:before_enter => :before_enter_open,
|
23
|
-
:enter => :enter_open,
|
24
|
-
:after_enter => :after_enter_open,
|
25
|
-
:before_exit => :before_exit_open,
|
26
|
-
:exit => :exit_open,
|
27
|
-
:after_exit => :after_exit_open
|
28
|
-
|
29
|
-
state :closed,
|
30
|
-
:before_enter => :before_enter_closed,
|
31
|
-
:enter => :enter_closed,
|
32
|
-
:after_enter => :after_enter_closed,
|
33
|
-
:before_exit => :before_exit_closed,
|
34
|
-
:exit => :exit_closed,
|
35
|
-
:after_exit => :after_exit_closed
|
36
|
-
|
37
|
-
event :left_close, :before => :before_event, :after => :after_event, :guard => :event_guard do
|
38
|
-
transitions :to => :closed, :from => [:open], :guard => :transition_guard, :after => :after_transition
|
39
|
-
end
|
40
|
-
|
41
|
-
event :left_open, :before => :before_event, :after => :after_event do
|
42
|
-
transitions :to => :open, :from => :closed
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
def log(text)
|
47
|
-
@data << text
|
48
|
-
puts text if @log
|
49
|
-
end
|
50
|
-
|
51
|
-
def aasm_write_state(*args); log("aasm_write_state(#{args.inspect})"); true; end
|
52
|
-
|
53
|
-
def before_enter_open; log('before_enter_open'); end
|
54
|
-
def enter_open; log('enter_open'); end
|
55
|
-
def before_exit_open; log('before_exit_open'); end
|
56
|
-
def after_enter_open; log('after_enter_open'); end
|
57
|
-
def exit_open; log('exit_open'); end
|
58
|
-
def after_exit_open; log('after_exit_open'); end
|
59
|
-
|
60
|
-
def before_enter_closed; log('before_enter_closed'); end
|
61
|
-
def enter_closed; log('enter_closed'); end
|
62
|
-
def before_exit_closed; log('before_exit_closed'); end
|
63
|
-
def exit_closed; log('exit_closed'); end
|
64
|
-
def after_enter_closed; log('after_enter_closed'); end
|
65
|
-
def after_exit_closed; log('after_exit_closed'); end
|
66
|
-
|
67
|
-
def event_guard; log('event_guard'); !@fail_event_guard; end
|
68
|
-
def transition_guard; log('transition_guard'); !@fail_transition_guard; end
|
69
|
-
|
70
|
-
def after_transition; log('after_transition'); end
|
71
|
-
|
72
|
-
def before_event; log('before_event'); end
|
73
|
-
def after_event; log('after_event'); end
|
74
|
-
end
|
75
|
-
end
|
@@ -1,66 +0,0 @@
|
|
1
|
-
module Callbacks
|
2
|
-
class GuardWithinBlock
|
3
|
-
include AASM
|
4
|
-
|
5
|
-
def initialize(options={})
|
6
|
-
@fail_event_guard = options[:fail_event_guard]
|
7
|
-
@fail_transition_guard = options[:fail_transition_guard]
|
8
|
-
@log = options[:log]
|
9
|
-
end
|
10
|
-
|
11
|
-
aasm do
|
12
|
-
state :open, :initial => true,
|
13
|
-
:before_enter => :before_enter_open,
|
14
|
-
:enter => :enter_open,
|
15
|
-
:after_enter => :after_enter_open,
|
16
|
-
:before_exit => :before_exit_open,
|
17
|
-
:exit => :exit_open,
|
18
|
-
:after_exit => :after_exit_open
|
19
|
-
|
20
|
-
state :closed,
|
21
|
-
:before_enter => :before_enter_closed,
|
22
|
-
:enter => :enter_closed,
|
23
|
-
:after_enter => :after_enter_closed,
|
24
|
-
:before_exit => :before_exit_closed,
|
25
|
-
:exit => :exit_closed,
|
26
|
-
:after_exit => :after_exit_closed
|
27
|
-
|
28
|
-
event :close, :before => :before, :after => :after, :guard => :event_guard do
|
29
|
-
transitions :to => :closed, :from => [:open], :after => :transitioning do
|
30
|
-
guard do
|
31
|
-
transition_guard
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
event :open, :before => :before, :after => :after do
|
37
|
-
transitions :to => :open, :from => :closed
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
def log(text)
|
42
|
-
puts text if @log
|
43
|
-
end
|
44
|
-
|
45
|
-
def before_enter_open; log('before_enter_open'); end
|
46
|
-
def enter_open; log('enter_open'); end
|
47
|
-
def before_exit_open; log('before_exit_open'); end
|
48
|
-
def after_enter_open; log('after_enter_open'); end
|
49
|
-
def exit_open; log('exit_open'); end
|
50
|
-
def after_exit_open; log('after_exit_open'); end
|
51
|
-
|
52
|
-
def before_enter_closed; log('before_enter_closed'); end
|
53
|
-
def enter_closed; log('enter_closed'); end
|
54
|
-
def before_exit_closed; log('before_exit_closed'); end
|
55
|
-
def exit_closed; log('exit_closed'); end
|
56
|
-
def after_enter_closed; log('after_enter_closed'); end
|
57
|
-
def after_exit_closed; log('after_exit_closed'); end
|
58
|
-
|
59
|
-
def event_guard; log('event_guard'); !@fail_event_guard; end
|
60
|
-
def transition_guard; log('transition_guard'); !@fail_transition_guard; end
|
61
|
-
def transitioning; log('transitioning'); end
|
62
|
-
|
63
|
-
def before; log('before'); end
|
64
|
-
def after; log('after'); end
|
65
|
-
end
|
66
|
-
end
|
@@ -1,66 +0,0 @@
|
|
1
|
-
module Callbacks
|
2
|
-
class GuardWithinBlockMultiple
|
3
|
-
include AASM
|
4
|
-
|
5
|
-
def initialize(options={})
|
6
|
-
@fail_event_guard = options[:fail_event_guard]
|
7
|
-
@fail_transition_guard = options[:fail_transition_guard]
|
8
|
-
@log = options[:log]
|
9
|
-
end
|
10
|
-
|
11
|
-
aasm(:left) do
|
12
|
-
state :open, :initial => true,
|
13
|
-
:before_enter => :before_enter_open,
|
14
|
-
:enter => :enter_open,
|
15
|
-
:after_enter => :after_enter_open,
|
16
|
-
:before_exit => :before_exit_open,
|
17
|
-
:exit => :exit_open,
|
18
|
-
:after_exit => :after_exit_open
|
19
|
-
|
20
|
-
state :closed,
|
21
|
-
:before_enter => :before_enter_closed,
|
22
|
-
:enter => :enter_closed,
|
23
|
-
:after_enter => :after_enter_closed,
|
24
|
-
:before_exit => :before_exit_closed,
|
25
|
-
:exit => :exit_closed,
|
26
|
-
:after_exit => :after_exit_closed
|
27
|
-
|
28
|
-
event :close, :before => :before, :after => :after, :guard => :event_guard do
|
29
|
-
transitions :to => :closed, :from => [:open], :after => :transitioning do
|
30
|
-
guard do
|
31
|
-
transition_guard
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
event :open, :before => :before, :after => :after do
|
37
|
-
transitions :to => :open, :from => :closed
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
def log(text)
|
42
|
-
puts text if @log
|
43
|
-
end
|
44
|
-
|
45
|
-
def before_enter_open; log('before_enter_open'); end
|
46
|
-
def enter_open; log('enter_open'); end
|
47
|
-
def before_exit_open; log('before_exit_open'); end
|
48
|
-
def after_enter_open; log('after_enter_open'); end
|
49
|
-
def exit_open; log('exit_open'); end
|
50
|
-
def after_exit_open; log('after_exit_open'); end
|
51
|
-
|
52
|
-
def before_enter_closed; log('before_enter_closed'); end
|
53
|
-
def enter_closed; log('enter_closed'); end
|
54
|
-
def before_exit_closed; log('before_exit_closed'); end
|
55
|
-
def exit_closed; log('exit_closed'); end
|
56
|
-
def after_enter_closed; log('after_enter_closed'); end
|
57
|
-
def after_exit_closed; log('after_exit_closed'); end
|
58
|
-
|
59
|
-
def event_guard; log('event_guard'); !@fail_event_guard; end
|
60
|
-
def transition_guard; log('transition_guard'); !@fail_transition_guard; end
|
61
|
-
def transitioning; log('transitioning'); end
|
62
|
-
|
63
|
-
def before; log('before'); end
|
64
|
-
def after; log('after'); end
|
65
|
-
end
|
66
|
-
end
|
@@ -1,65 +0,0 @@
|
|
1
|
-
module Callbacks
|
2
|
-
class MultipleTransitionsTransitionGuard
|
3
|
-
include AASM
|
4
|
-
|
5
|
-
def initialize(options={})
|
6
|
-
@fail_event_guard = options[:fail_event_guard]
|
7
|
-
@fail_transition_guard = options[:fail_transition_guard]
|
8
|
-
@log = options[:log]
|
9
|
-
end
|
10
|
-
|
11
|
-
aasm do
|
12
|
-
state :open, :initial => true,
|
13
|
-
:before_enter => :before_enter_open,
|
14
|
-
:enter => :enter_open,
|
15
|
-
:after_enter => :after_enter_open,
|
16
|
-
:before_exit => :before_exit_open,
|
17
|
-
:exit => :exit_open,
|
18
|
-
:after_exit => :after_exit_open
|
19
|
-
|
20
|
-
state :closed,
|
21
|
-
:before_enter => :before_enter_closed,
|
22
|
-
:enter => :enter_closed,
|
23
|
-
:after_enter => :after_enter_closed,
|
24
|
-
:before_exit => :before_exit_closed,
|
25
|
-
:exit => :exit_closed,
|
26
|
-
:after_exit => :after_exit_closed
|
27
|
-
|
28
|
-
state :failed
|
29
|
-
|
30
|
-
event :close, :before => :before, :after => :after, :guard => :event_guard do
|
31
|
-
transitions :to => :closed, :from => [:open], :guard => :transition_guard, :after => :transitioning
|
32
|
-
transitions :to => :failed, :from => [:open]
|
33
|
-
end
|
34
|
-
|
35
|
-
event :open, :before => :before, :after => :after do
|
36
|
-
transitions :to => :open, :from => :closed
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
def log(text)
|
41
|
-
puts text if @log
|
42
|
-
end
|
43
|
-
|
44
|
-
def before_enter_open; log('before_enter_open'); end
|
45
|
-
def enter_open; log('enter_open'); end
|
46
|
-
def before_exit_open; log('before_exit_open'); end
|
47
|
-
def after_enter_open; log('after_enter_open'); end
|
48
|
-
def exit_open; log('exit_open'); end
|
49
|
-
def after_exit_open; log('after_exit_open'); end
|
50
|
-
|
51
|
-
def before_enter_closed; log('before_enter_closed'); end
|
52
|
-
def enter_closed; log('enter_closed'); end
|
53
|
-
def before_exit_closed; log('before_exit_closed'); end
|
54
|
-
def exit_closed; log('exit_closed'); end
|
55
|
-
def after_enter_closed; log('after_enter_closed'); end
|
56
|
-
def after_exit_closed; log('after_exit_closed'); end
|
57
|
-
|
58
|
-
def event_guard; log('event_guard'); !@fail_event_guard; end
|
59
|
-
def transition_guard; log('transition_guard'); !@fail_transition_guard; end
|
60
|
-
def transitioning; log('transitioning'); end
|
61
|
-
|
62
|
-
def before; log('before'); end
|
63
|
-
def after; log('after'); end
|
64
|
-
end
|
65
|
-
end
|
@@ -1,65 +0,0 @@
|
|
1
|
-
module Callbacks
|
2
|
-
class MultipleTransitionsTransitionGuardMultiple
|
3
|
-
include AASM
|
4
|
-
|
5
|
-
def initialize(options={})
|
6
|
-
@fail_event_guard = options[:fail_event_guard]
|
7
|
-
@fail_transition_guard = options[:fail_transition_guard]
|
8
|
-
@log = options[:log]
|
9
|
-
end
|
10
|
-
|
11
|
-
aasm(:left) do
|
12
|
-
state :open, :initial => true,
|
13
|
-
:before_enter => :before_enter_open,
|
14
|
-
:enter => :enter_open,
|
15
|
-
:after_enter => :after_enter_open,
|
16
|
-
:before_exit => :before_exit_open,
|
17
|
-
:exit => :exit_open,
|
18
|
-
:after_exit => :after_exit_open
|
19
|
-
|
20
|
-
state :closed,
|
21
|
-
:before_enter => :before_enter_closed,
|
22
|
-
:enter => :enter_closed,
|
23
|
-
:after_enter => :after_enter_closed,
|
24
|
-
:before_exit => :before_exit_closed,
|
25
|
-
:exit => :exit_closed,
|
26
|
-
:after_exit => :after_exit_closed
|
27
|
-
|
28
|
-
state :failed
|
29
|
-
|
30
|
-
event :close, :before => :before, :after => :after, :guard => :event_guard do
|
31
|
-
transitions :to => :closed, :from => [:open], :guard => :transition_guard, :after => :transitioning
|
32
|
-
transitions :to => :failed, :from => [:open]
|
33
|
-
end
|
34
|
-
|
35
|
-
event :open, :before => :before, :after => :after do
|
36
|
-
transitions :to => :open, :from => :closed
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
def log(text)
|
41
|
-
puts text if @log
|
42
|
-
end
|
43
|
-
|
44
|
-
def before_enter_open; log('before_enter_open'); end
|
45
|
-
def enter_open; log('enter_open'); end
|
46
|
-
def before_exit_open; log('before_exit_open'); end
|
47
|
-
def after_enter_open; log('after_enter_open'); end
|
48
|
-
def exit_open; log('exit_open'); end
|
49
|
-
def after_exit_open; log('after_exit_open'); end
|
50
|
-
|
51
|
-
def before_enter_closed; log('before_enter_closed'); end
|
52
|
-
def enter_closed; log('enter_closed'); end
|
53
|
-
def before_exit_closed; log('before_exit_closed'); end
|
54
|
-
def exit_closed; log('exit_closed'); end
|
55
|
-
def after_enter_closed; log('after_enter_closed'); end
|
56
|
-
def after_exit_closed; log('after_exit_closed'); end
|
57
|
-
|
58
|
-
def event_guard; log('event_guard'); !@fail_event_guard; end
|
59
|
-
def transition_guard; log('transition_guard'); !@fail_transition_guard; end
|
60
|
-
def transitioning; log('transitioning'); end
|
61
|
-
|
62
|
-
def before; log('before'); end
|
63
|
-
def after; log('after'); end
|
64
|
-
end
|
65
|
-
end
|
@@ -1,44 +0,0 @@
|
|
1
|
-
module Callbacks
|
2
|
-
class PrivateMethod
|
3
|
-
include AASM
|
4
|
-
|
5
|
-
def initialize(options={})
|
6
|
-
@fail_event_guard = options[:fail_event_guard]
|
7
|
-
@fail_transition_guard = options[:fail_transition_guard]
|
8
|
-
@log = options[:log]
|
9
|
-
reset_data
|
10
|
-
end
|
11
|
-
|
12
|
-
def reset_data
|
13
|
-
@data = []
|
14
|
-
end
|
15
|
-
|
16
|
-
def data
|
17
|
-
@data.join(' ')
|
18
|
-
end
|
19
|
-
|
20
|
-
aasm do
|
21
|
-
state :open, :initial => true
|
22
|
-
state :closed
|
23
|
-
|
24
|
-
event :close, :after => :after_event do
|
25
|
-
transitions :to => :closed, :from => [:open]
|
26
|
-
end
|
27
|
-
|
28
|
-
event :open, :after => :after_event do
|
29
|
-
transitions :to => :open, :from => :closed
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
def log(text)
|
34
|
-
@data << text
|
35
|
-
puts text if @log
|
36
|
-
end
|
37
|
-
|
38
|
-
def aasm_write_state(*args); log('aasm_write_state'); true; end
|
39
|
-
|
40
|
-
private
|
41
|
-
|
42
|
-
def after_event; log('after_event'); end
|
43
|
-
end
|
44
|
-
end
|
@@ -1,44 +0,0 @@
|
|
1
|
-
module Callbacks
|
2
|
-
class PrivateMethodMultiple
|
3
|
-
include AASM
|
4
|
-
|
5
|
-
def initialize(options={})
|
6
|
-
@fail_event_guard = options[:fail_event_guard]
|
7
|
-
@fail_transition_guard = options[:fail_transition_guard]
|
8
|
-
@log = options[:log]
|
9
|
-
reset_data
|
10
|
-
end
|
11
|
-
|
12
|
-
def reset_data
|
13
|
-
@data = []
|
14
|
-
end
|
15
|
-
|
16
|
-
def data
|
17
|
-
@data.join(' ')
|
18
|
-
end
|
19
|
-
|
20
|
-
aasm(:left) do
|
21
|
-
state :open, :initial => true
|
22
|
-
state :closed
|
23
|
-
|
24
|
-
event :close, :after => :after_event do
|
25
|
-
transitions :to => :closed, :from => [:open]
|
26
|
-
end
|
27
|
-
|
28
|
-
event :open, :after => :after_event do
|
29
|
-
transitions :to => :open, :from => :closed
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
def log(text)
|
34
|
-
@data << text
|
35
|
-
puts text if @log
|
36
|
-
end
|
37
|
-
|
38
|
-
def aasm_write_state(*args); log('aasm_write_state'); true; end
|
39
|
-
|
40
|
-
private
|
41
|
-
|
42
|
-
def after_event; log('after_event'); end
|
43
|
-
end
|
44
|
-
end
|