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,30 +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
|
-
end
|
data/spec/models/sub_class.rb
DELETED
@@ -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
|
data/spec/models/sub_classing.rb
DELETED
data/spec/models/super_class.rb
DELETED
@@ -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
|
data/spec/models/transactor.rb
DELETED
@@ -1,53 +0,0 @@
|
|
1
|
-
require 'active_record'
|
2
|
-
|
3
|
-
class Transactor < ActiveRecord::Base
|
4
|
-
|
5
|
-
belongs_to :worker
|
6
|
-
|
7
|
-
include AASM
|
8
|
-
aasm :column => :status do
|
9
|
-
state :sleeping, :initial => true
|
10
|
-
state :running, :before_enter => :start_worker, :after_enter => :fail
|
11
|
-
|
12
|
-
event :run do
|
13
|
-
transitions :to => :running, :from => :sleeping
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
private
|
18
|
-
|
19
|
-
def start_worker
|
20
|
-
worker.update_attribute(:status, 'running')
|
21
|
-
end
|
22
|
-
|
23
|
-
def fail
|
24
|
-
raise StandardError.new('failed on purpose')
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
28
|
-
|
29
|
-
class MultipleTransactor < ActiveRecord::Base
|
30
|
-
|
31
|
-
belongs_to :worker
|
32
|
-
|
33
|
-
include AASM
|
34
|
-
aasm :left, :column => :status do
|
35
|
-
state :sleeping, :initial => true
|
36
|
-
state :running, :before_enter => :start_worker, :after_enter => :fail
|
37
|
-
|
38
|
-
event :run do
|
39
|
-
transitions :to => :running, :from => :sleeping
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
private
|
44
|
-
|
45
|
-
def start_worker
|
46
|
-
worker.update_attribute(:status, 'running')
|
47
|
-
end
|
48
|
-
|
49
|
-
def fail
|
50
|
-
raise StandardError.new('failed on purpose')
|
51
|
-
end
|
52
|
-
|
53
|
-
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/models/validator.rb
DELETED
@@ -1,79 +0,0 @@
|
|
1
|
-
require 'active_record'
|
2
|
-
|
3
|
-
class Validator < ActiveRecord::Base
|
4
|
-
|
5
|
-
include AASM
|
6
|
-
aasm :column => :status do
|
7
|
-
state :sleeping, :initial => true
|
8
|
-
state :running
|
9
|
-
state :failed, :after_enter => :fail
|
10
|
-
|
11
|
-
event :run, :after_commit => :change_name! do
|
12
|
-
transitions :to => :running, :from => :sleeping
|
13
|
-
end
|
14
|
-
event :sleep do
|
15
|
-
after_commit do |name|
|
16
|
-
change_name_on_sleep name
|
17
|
-
end
|
18
|
-
transitions :to => :sleeping, :from => :running
|
19
|
-
end
|
20
|
-
event :fail do
|
21
|
-
transitions :to => :failed, :from => [:sleeping, :running]
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
validates_presence_of :name
|
26
|
-
|
27
|
-
def change_name!
|
28
|
-
self.name = "name changed"
|
29
|
-
save!
|
30
|
-
end
|
31
|
-
|
32
|
-
def change_name_on_sleep name
|
33
|
-
self.name = name
|
34
|
-
save!
|
35
|
-
end
|
36
|
-
|
37
|
-
def fail
|
38
|
-
raise StandardError.new('failed on purpose')
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
class MultipleValidator < ActiveRecord::Base
|
43
|
-
|
44
|
-
include AASM
|
45
|
-
aasm :left, :column => :status do
|
46
|
-
state :sleeping, :initial => true
|
47
|
-
state :running
|
48
|
-
state :failed, :after_enter => :fail
|
49
|
-
|
50
|
-
event :run, :after_commit => :change_name! do
|
51
|
-
transitions :to => :running, :from => :sleeping
|
52
|
-
end
|
53
|
-
event :sleep do
|
54
|
-
after_commit do |name|
|
55
|
-
change_name_on_sleep name
|
56
|
-
end
|
57
|
-
transitions :to => :sleeping, :from => :running
|
58
|
-
end
|
59
|
-
event :fail do
|
60
|
-
transitions :to => :failed, :from => [:sleeping, :running]
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
validates_presence_of :name
|
65
|
-
|
66
|
-
def change_name!
|
67
|
-
self.name = "name changed"
|
68
|
-
save!
|
69
|
-
end
|
70
|
-
|
71
|
-
def change_name_on_sleep name
|
72
|
-
self.name = name
|
73
|
-
save!
|
74
|
-
end
|
75
|
-
|
76
|
-
def fail
|
77
|
-
raise StandardError.new('failed on purpose')
|
78
|
-
end
|
79
|
-
end
|
data/spec/models/worker.rb
DELETED
data/spec/spec_helper.rb
DELETED
@@ -1,25 +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
|
-
|
7
|
-
# require 'ruby-debug'; Debugger.settings[:autoeval] = true; debugger; rubys_debugger = 'annoying'
|
8
|
-
# require 'ruby-debug/completion'
|
9
|
-
# require 'pry'
|
10
|
-
|
11
|
-
SEQUEL_DB = defined?(JRUBY_VERSION) ? 'jdbc:sqlite::memory:' : 'sqlite:/'
|
12
|
-
|
13
|
-
def load_schema
|
14
|
-
require 'logger'
|
15
|
-
config = YAML::load(IO.read(File.dirname(__FILE__) + '/database.yml'))
|
16
|
-
ActiveRecord::Base.logger = Logger.new(File.dirname(__FILE__) + "/debug.log")
|
17
|
-
ActiveRecord::Base.establish_connection(config['sqlite3'])
|
18
|
-
require File.dirname(__FILE__) + "/database.rb"
|
19
|
-
end
|
20
|
-
|
21
|
-
# custom spec helpers
|
22
|
-
Dir[File.dirname(__FILE__) + "/spec_helpers/**/*.rb"].sort.each { |f| require File.expand_path(f) }
|
23
|
-
|
24
|
-
# example model classes
|
25
|
-
Dir[File.dirname(__FILE__) + "/models/*.rb"].sort.each { |f| require File.expand_path(f) }
|
data/spec/unit/api_spec.rb
DELETED
@@ -1,77 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'models/default_state.rb'
|
3
|
-
require 'models/provided_state.rb'
|
4
|
-
require 'models/active_record/persisted_state.rb'
|
5
|
-
require 'models/active_record/provided_and_persisted_state.rb'
|
6
|
-
|
7
|
-
load_schema
|
8
|
-
|
9
|
-
describe "reading the current state" do
|
10
|
-
it "uses the AASM default" do
|
11
|
-
expect(DefaultState.new.aasm.current_state).to eql :alpha
|
12
|
-
end
|
13
|
-
|
14
|
-
it "uses the provided method" do
|
15
|
-
expect(ProvidedState.new.aasm.current_state).to eql :beta
|
16
|
-
end
|
17
|
-
|
18
|
-
it "uses the persistence storage" do
|
19
|
-
expect(PersistedState.new.aasm.current_state).to eql :alpha
|
20
|
-
end
|
21
|
-
|
22
|
-
it "uses the provided method even if persisted" do
|
23
|
-
expect(ProvidedAndPersistedState.new.aasm.current_state).to eql :gamma
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
describe "writing and persisting the current state" do
|
28
|
-
it "uses the AASM default" do
|
29
|
-
o = DefaultState.new
|
30
|
-
o.release!
|
31
|
-
expect(o.persisted_store).to be_nil
|
32
|
-
end
|
33
|
-
|
34
|
-
it "uses the provided method" do
|
35
|
-
o = ProvidedState.new
|
36
|
-
o.release!
|
37
|
-
expect(o.persisted_store).to eql :beta
|
38
|
-
end
|
39
|
-
|
40
|
-
it "uses the persistence storage" do
|
41
|
-
o = PersistedState.new
|
42
|
-
o.release!
|
43
|
-
expect(o.persisted_store).to be_nil
|
44
|
-
end
|
45
|
-
|
46
|
-
it "uses the provided method even if persisted" do
|
47
|
-
o = ProvidedAndPersistedState.new
|
48
|
-
o.release!
|
49
|
-
expect(o.persisted_store).to eql :beta
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
describe "writing the current state without persisting it" do
|
54
|
-
it "uses the AASM default" do
|
55
|
-
o = DefaultState.new
|
56
|
-
o.release
|
57
|
-
expect(o.transient_store).to be_nil
|
58
|
-
end
|
59
|
-
|
60
|
-
it "uses the provided method" do
|
61
|
-
o = ProvidedState.new
|
62
|
-
o.release
|
63
|
-
expect(o.transient_store).to eql :beta
|
64
|
-
end
|
65
|
-
|
66
|
-
it "uses the persistence storage" do
|
67
|
-
o = PersistedState.new
|
68
|
-
o.release
|
69
|
-
expect(o.transient_store).to be_nil
|
70
|
-
end
|
71
|
-
|
72
|
-
it "uses the provided method even if persisted" do
|
73
|
-
o = ProvidedAndPersistedState.new
|
74
|
-
o.release
|
75
|
-
expect(o.transient_store).to eql :beta
|
76
|
-
end
|
77
|
-
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
|