aasm 4.12.2 → 5.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/LICENSE +1 -1
- data/README.md +393 -116
- data/lib/aasm/aasm.rb +30 -27
- data/lib/aasm/base.rb +64 -11
- data/lib/aasm/configuration.rb +6 -0
- data/lib/aasm/core/event.rb +26 -30
- 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 +16 -14
- data/lib/aasm/core/transition.rb +8 -69
- data/lib/aasm/dsl_helper.rb +24 -22
- data/lib/aasm/errors.rb +5 -3
- data/lib/aasm/instance_base.rb +34 -3
- data/lib/aasm/localizer.rb +13 -3
- data/lib/aasm/persistence/active_record_persistence.rb +25 -5
- data/lib/aasm/persistence/base.rb +14 -3
- data/lib/aasm/persistence/core_data_query_persistence.rb +2 -1
- data/lib/aasm/persistence/dynamoid_persistence.rb +1 -1
- data/lib/aasm/persistence/mongoid_persistence.rb +1 -1
- data/lib/aasm/persistence/no_brainer_persistence.rb +105 -0
- data/lib/aasm/persistence/orm.rb +26 -14
- data/lib/aasm/persistence/plain_persistence.rb +2 -1
- data/lib/aasm/persistence/redis_persistence.rb +1 -1
- data/lib/aasm/persistence/sequel_persistence.rb +0 -1
- data/lib/aasm/persistence.rb +3 -0
- 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 +5 -1
- data/lib/aasm/version.rb +1 -1
- data/lib/aasm.rb +5 -2
- data/lib/generators/aasm/orm_helpers.rb +7 -1
- data/lib/generators/active_record/aasm_generator.rb +3 -1
- data/lib/generators/active_record/templates/migration.rb +1 -1
- data/lib/generators/nobrainer/aasm_generator.rb +28 -0
- data/lib/motion-aasm.rb +1 -0
- metadata +42 -343
- data/.document +0 -6
- data/.gitignore +0 -20
- data/.travis.yml +0 -52
- data/API +0 -34
- data/Appraisals +0 -43
- data/CHANGELOG.md +0 -365
- data/CODE_OF_CONDUCT.md +0 -13
- data/CONTRIBUTING.md +0 -24
- data/Gemfile +0 -7
- data/HOWTO +0 -12
- data/PLANNED_CHANGES.md +0 -11
- data/README_FROM_VERSION_3_TO_4.md +0 -240
- data/Rakefile +0 -31
- data/TESTING.md +0 -25
- data/aasm.gemspec +0 -35
- data/callbacks.txt +0 -51
- data/gemfiles/rails_3.2.gemfile +0 -13
- data/gemfiles/rails_4.0.gemfile +0 -15
- data/gemfiles/rails_4.2.gemfile +0 -16
- data/gemfiles/rails_4.2_mongoid_5.gemfile +0 -11
- data/gemfiles/rails_5.0.gemfile +0 -14
- data/spec/database.rb +0 -44
- data/spec/database.yml +0 -3
- data/spec/en.yml +0 -12
- data/spec/en_deprecated_style.yml +0 -10
- data/spec/generators/active_record_generator_spec.rb +0 -47
- data/spec/generators/mongoid_generator_spec.rb +0 -31
- 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 -37
- 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/invalid_persistor.rb +0 -29
- 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/silent_persistor.rb +0 -29
- 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/transactor.rb +0 -99
- data/spec/models/active_record/transient.rb +0 -6
- data/spec/models/active_record/validator.rb +0 -118
- data/spec/models/active_record/with_enum.rb +0 -39
- data/spec/models/active_record/with_enum_without_column.rb +0 -38
- 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/worker.rb +0 -2
- 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 -98
- data/spec/models/callbacks/basic_multiple.rb +0 -75
- data/spec/models/callbacks/guard_within_block.rb +0 -67
- data/spec/models/callbacks/guard_within_block_multiple.rb +0 -66
- data/spec/models/callbacks/multiple_transitions_transition_guard.rb +0 -66
- 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 -62
- data/spec/models/callbacks/with_args_multiple.rb +0 -61
- data/spec/models/callbacks/with_state_arg.rb +0 -30
- 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/dynamoid/complex_dynamoid_example.rb +0 -37
- data/spec/models/dynamoid/dynamoid_multiple.rb +0 -18
- data/spec/models/dynamoid/dynamoid_simple.rb +0 -18
- data/spec/models/foo.rb +0 -106
- data/spec/models/foo_callback_multiple.rb +0 -45
- data/spec/models/guard_arguments_check.rb +0 -17
- data/spec/models/guard_with_params.rb +0 -24
- data/spec/models/guard_with_params_multiple.rb +0 -18
- data/spec/models/guardian.rb +0 -58
- data/spec/models/guardian_multiple.rb +0 -48
- data/spec/models/guardian_without_from_specified.rb +0 -18
- data/spec/models/initial_state_proc.rb +0 -31
- data/spec/models/mongoid/complex_mongoid_example.rb +0 -37
- data/spec/models/mongoid/invalid_persistor_mongoid.rb +0 -39
- data/spec/models/mongoid/mongoid_relationships.rb +0 -26
- data/spec/models/mongoid/no_scope_mongoid.rb +0 -21
- data/spec/models/mongoid/silent_persistor_mongoid.rb +0 -39
- data/spec/models/mongoid/simple_mongoid.rb +0 -23
- data/spec/models/mongoid/simple_new_dsl_mongoid.rb +0 -25
- data/spec/models/mongoid/validator_mongoid.rb +0 -100
- data/spec/models/multi_transitioner.rb +0 -34
- data/spec/models/multiple_transitions_that_differ_only_by_guard.rb +0 -31
- data/spec/models/namespaced_multiple_example.rb +0 -42
- 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 -42
- 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/redis/complex_redis_example.rb +0 -40
- data/spec/models/redis/redis_multiple.rb +0 -20
- data/spec/models/redis/redis_simple.rb +0 -20
- data/spec/models/sequel/complex_sequel_example.rb +0 -46
- data/spec/models/sequel/invalid_persistor.rb +0 -52
- data/spec/models/sequel/sequel_multiple.rb +0 -25
- data/spec/models/sequel/sequel_simple.rb +0 -26
- data/spec/models/sequel/silent_persistor.rb +0 -50
- data/spec/models/sequel/transactor.rb +0 -112
- data/spec/models/sequel/validator.rb +0 -93
- data/spec/models/sequel/worker.rb +0 -12
- data/spec/models/silencer.rb +0 -27
- data/spec/models/simple_custom_example.rb +0 -53
- data/spec/models/simple_example.rb +0 -15
- data/spec/models/simple_multiple_example.rb +0 -42
- data/spec/models/state_machine_with_failed_event.rb +0 -20
- data/spec/models/states_on_one_line_example.rb +0 -8
- data/spec/models/sub_class.rb +0 -41
- 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/valid_state_name.rb +0 -23
- data/spec/spec_helper.rb +0 -26
- data/spec/spec_helpers/active_record.rb +0 -7
- data/spec/spec_helpers/dynamoid.rb +0 -33
- data/spec/spec_helpers/mongoid.rb +0 -7
- data/spec/spec_helpers/redis.rb +0 -15
- data/spec/spec_helpers/remove_warnings.rb +0 -1
- data/spec/spec_helpers/sequel.rb +0 -7
- data/spec/unit/api_spec.rb +0 -100
- data/spec/unit/basic_two_state_machines_example_spec.rb +0 -10
- data/spec/unit/callback_multiple_spec.rb +0 -300
- data/spec/unit/callbacks_spec.rb +0 -491
- 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 -16
- data/spec/unit/event_spec.rb +0 -381
- data/spec/unit/exception_spec.rb +0 -11
- data/spec/unit/guard_arguments_check_spec.rb +0 -9
- data/spec/unit/guard_multiple_spec.rb +0 -60
- data/spec/unit/guard_spec.rb +0 -89
- data/spec/unit/guard_with_params_multiple_spec.rb +0 -10
- data/spec/unit/guard_with_params_spec.rb +0 -14
- data/spec/unit/guard_without_from_specified_spec.rb +0 -10
- 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 -149
- data/spec/unit/localizer_spec.rb +0 -78
- data/spec/unit/memory_leak_spec.rb +0 -38
- data/spec/unit/multiple_transitions_that_differ_only_by_guard_spec.rb +0 -14
- data/spec/unit/namespaced_multiple_example_spec.rb +0 -75
- data/spec/unit/new_dsl_spec.rb +0 -12
- data/spec/unit/override_warning_spec.rb +0 -94
- data/spec/unit/persistence/active_record_persistence_multiple_spec.rb +0 -618
- data/spec/unit/persistence/active_record_persistence_spec.rb +0 -721
- data/spec/unit/persistence/dynamoid_persistence_multiple_spec.rb +0 -135
- data/spec/unit/persistence/dynamoid_persistence_spec.rb +0 -84
- data/spec/unit/persistence/mongoid_persistence_multiple_spec.rb +0 -204
- data/spec/unit/persistence/mongoid_persistence_spec.rb +0 -169
- data/spec/unit/persistence/redis_persistence_multiple_spec.rb +0 -88
- data/spec/unit/persistence/redis_persistence_spec.rb +0 -53
- data/spec/unit/persistence/sequel_persistence_multiple_spec.rb +0 -148
- data/spec/unit/persistence/sequel_persistence_spec.rb +0 -368
- data/spec/unit/readme_spec.rb +0 -41
- data/spec/unit/reloading_spec.rb +0 -15
- data/spec/unit/rspec_matcher_spec.rb +0 -79
- data/spec/unit/simple_custom_example_spec.rb +0 -39
- data/spec/unit/simple_example_spec.rb +0 -42
- data/spec/unit/simple_multiple_example_spec.rb +0 -91
- data/spec/unit/state_spec.rb +0 -89
- data/spec/unit/states_on_one_line_example_spec.rb +0 -16
- data/spec/unit/subclassing_multiple_spec.rb +0 -74
- data/spec/unit/subclassing_spec.rb +0 -46
- data/spec/unit/transition_spec.rb +0 -436
- data/test/minitest_helper.rb +0 -57
- data/test/unit/minitest_matcher_test.rb +0 -80
@@ -1,53 +0,0 @@
|
|
1
|
-
class CustomAASMBase < AASM::Base
|
2
|
-
# A custom transiton that we want available across many AASM models.
|
3
|
-
def count_transitions!
|
4
|
-
klass.class_eval do
|
5
|
-
aasm :with_klass => CustomAASMBase do
|
6
|
-
after_all_transitions :increment_transition_count
|
7
|
-
end
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
# A custom annotation that we want available across many AASM models.
|
12
|
-
def requires_guards!
|
13
|
-
klass.class_eval do
|
14
|
-
attr_reader :authorizable_called,
|
15
|
-
:transition_count,
|
16
|
-
:fillable_called
|
17
|
-
|
18
|
-
def authorizable?
|
19
|
-
@authorizable_called = true
|
20
|
-
end
|
21
|
-
|
22
|
-
def fillable?
|
23
|
-
@fillable_called = true
|
24
|
-
end
|
25
|
-
|
26
|
-
def increment_transition_count
|
27
|
-
@transition_count ||= 0
|
28
|
-
@transition_count += 1
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
class SimpleCustomExample
|
35
|
-
include AASM
|
36
|
-
|
37
|
-
# Let's build an AASM state machine with our custom class.
|
38
|
-
aasm :with_klass => CustomAASMBase do
|
39
|
-
requires_guards!
|
40
|
-
count_transitions!
|
41
|
-
|
42
|
-
state :initialised, :initial => true
|
43
|
-
state :filled_out
|
44
|
-
state :authorised
|
45
|
-
|
46
|
-
event :fill_out do
|
47
|
-
transitions :from => :initialised, :to => :filled_out, :guard => :fillable?
|
48
|
-
end
|
49
|
-
event :authorise do
|
50
|
-
transitions :from => :filled_out, :to => :authorised, :guard => :authorizable?
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
class SimpleExample
|
2
|
-
include AASM
|
3
|
-
aasm do
|
4
|
-
state :initialised, :initial => true
|
5
|
-
state :filled_out
|
6
|
-
state :authorised
|
7
|
-
|
8
|
-
event :fill_out do
|
9
|
-
transitions :from => :initialised, :to => :filled_out
|
10
|
-
end
|
11
|
-
event :authorise do
|
12
|
-
transitions :from => :filled_out, :to => :authorised
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
@@ -1,42 +0,0 @@
|
|
1
|
-
class SimpleMultipleExample
|
2
|
-
include AASM
|
3
|
-
aasm(:move) do
|
4
|
-
state :standing, :initial => true
|
5
|
-
state :walking
|
6
|
-
state :running
|
7
|
-
|
8
|
-
event :walk do
|
9
|
-
transitions :from => :standing, :to => :walking
|
10
|
-
end
|
11
|
-
event :run do
|
12
|
-
transitions :from => [:standing, :walking], :to => :running
|
13
|
-
end
|
14
|
-
event :hold do
|
15
|
-
transitions :from => [:walking, :running], :to => :standing
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
aasm(:work) do
|
20
|
-
state :sleeping, :initial => true
|
21
|
-
state :processing
|
22
|
-
|
23
|
-
event :start do
|
24
|
-
transitions :from => :sleeping, :to => :processing
|
25
|
-
end
|
26
|
-
event :stop do
|
27
|
-
transitions :from => :processing, :to => :sleeping
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
aasm(:question) do
|
32
|
-
state :answered, :initial => true
|
33
|
-
state :asked
|
34
|
-
|
35
|
-
event :ask, :binding_event => :start do
|
36
|
-
transitions :from => :answered, :to => :asked
|
37
|
-
end
|
38
|
-
event :answer, :binding_event => :stop do
|
39
|
-
transitions :from => :asked, :to => :answered
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
class StateMachineWithFailedEvent
|
2
|
-
include AASM
|
3
|
-
|
4
|
-
aasm do
|
5
|
-
state :init, :initial => true
|
6
|
-
state :failed
|
7
|
-
state :sent
|
8
|
-
|
9
|
-
event :failed do
|
10
|
-
transitions :from => :init, :to => :failed
|
11
|
-
end
|
12
|
-
event :send, :before => :callback do
|
13
|
-
transitions :from => :init, :to => :sent
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
def callback
|
18
|
-
true
|
19
|
-
end
|
20
|
-
end
|
data/spec/models/sub_class.rb
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
require_relative 'super_class'
|
2
|
-
|
3
|
-
class SubClass < SuperClass
|
4
|
-
# Add an after callback that is not defined in the parent
|
5
|
-
aasm.state_machine.events[:foo].options[:after] = [:after_foo_event]
|
6
|
-
|
7
|
-
# Add global callback that is not defined in the parent
|
8
|
-
aasm.state_machine.global_callbacks[:after_all_transitions] = :after_all_event
|
9
|
-
|
10
|
-
attr_accessor :called_after
|
11
|
-
|
12
|
-
def after_foo_event
|
13
|
-
self.called_after = true
|
14
|
-
end
|
15
|
-
|
16
|
-
def after_all_event; end
|
17
|
-
end
|
18
|
-
|
19
|
-
class SubClassMultiple < SuperClassMultiple
|
20
|
-
# Add after callbacks that are not defined in the parent
|
21
|
-
aasm(:left).state_machine.events[:foo].options[:after] = [:left_after_foo_event]
|
22
|
-
aasm(:right).state_machine.events[:close].options[:after] = [:right_after_close_event]
|
23
|
-
|
24
|
-
# Add global callback that is not defined in the parent
|
25
|
-
aasm(:left).state_machine.global_callbacks[:after_all_transitions] = :left_after_all_event
|
26
|
-
aasm(:right).state_machine.global_callbacks[:after_all_transitions] = :right_after_all_event
|
27
|
-
|
28
|
-
attr_accessor :left_called_after, :right_called_after
|
29
|
-
|
30
|
-
def left_after_foo_event
|
31
|
-
self.left_called_after = true
|
32
|
-
end
|
33
|
-
|
34
|
-
def right_after_close_event
|
35
|
-
self.right_called_after = true
|
36
|
-
end
|
37
|
-
|
38
|
-
def left_after_all_event; end
|
39
|
-
|
40
|
-
def right_after_all_event; end
|
41
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
require_relative 'super_class'
|
2
|
-
|
3
|
-
class SubClassWithMoreStates < SuperClass
|
4
|
-
include AASM
|
5
|
-
aasm do
|
6
|
-
state :foo
|
7
|
-
end
|
8
|
-
end
|
9
|
-
|
10
|
-
class SubClassWithMoreStatesMultiple < SuperClassMultiple
|
11
|
-
include AASM
|
12
|
-
aasm(:left) do
|
13
|
-
state :foo
|
14
|
-
end
|
15
|
-
aasm(:right) do
|
16
|
-
state :archived
|
17
|
-
end
|
18
|
-
end
|
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
|
@@ -1,23 +0,0 @@
|
|
1
|
-
class ValidStateName
|
2
|
-
include AASM
|
3
|
-
aasm do
|
4
|
-
state :invalid, :initial => true
|
5
|
-
state :valid
|
6
|
-
|
7
|
-
event :valid do
|
8
|
-
transitions :to => :valid, :from => [:invalid]
|
9
|
-
end
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
class ValidStateNameMultiple
|
14
|
-
include AASM
|
15
|
-
aasm(:left) do
|
16
|
-
state :invalid, :initial => true
|
17
|
-
state :valid
|
18
|
-
|
19
|
-
event :valid do
|
20
|
-
transitions :to => :valid, :from => [:invalid]
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
data/spec/spec_helper.rb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
$LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__)))
|
2
|
-
$LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib')))
|
3
|
-
require 'aasm'
|
4
|
-
require 'rspec'
|
5
|
-
require 'aasm/rspec'
|
6
|
-
require 'pry'
|
7
|
-
|
8
|
-
# require 'ruby-debug'; Debugger.settings[:autoeval] = true; debugger; rubys_debugger = 'annoying'
|
9
|
-
# require 'ruby-debug/completion'
|
10
|
-
# require 'pry'
|
11
|
-
|
12
|
-
SEQUEL_DB = defined?(JRUBY_VERSION) ? 'jdbc:sqlite::memory:' : 'sqlite:/'
|
13
|
-
|
14
|
-
def load_schema
|
15
|
-
require 'logger'
|
16
|
-
config = YAML::load(IO.read(File.dirname(__FILE__) + '/database.yml'))
|
17
|
-
ActiveRecord::Base.logger = Logger.new(File.dirname(__FILE__) + "/debug.log")
|
18
|
-
ActiveRecord::Base.establish_connection(config['sqlite3'])
|
19
|
-
require File.dirname(__FILE__) + "/database.rb"
|
20
|
-
end
|
21
|
-
|
22
|
-
# custom spec helpers
|
23
|
-
Dir[File.dirname(__FILE__) + "/spec_helpers/**/*.rb"].sort.each { |f| require File.expand_path(f) }
|
24
|
-
|
25
|
-
# example model classes
|
26
|
-
Dir[File.dirname(__FILE__) + "/models/*.rb"].sort.each { |f| require File.expand_path(f) }
|
@@ -1,33 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
begin
|
3
|
-
require 'dynamoid'
|
4
|
-
require 'aws-sdk-resources'
|
5
|
-
puts "dynamoid gem found, running Dynamoid specs \e[32m#{'✔'}\e[0m"
|
6
|
-
|
7
|
-
ENV['ACCESS_KEY'] ||= 'abcd'
|
8
|
-
ENV['SECRET_KEY'] ||= '1234'
|
9
|
-
|
10
|
-
Aws.config.update({
|
11
|
-
region: 'us-west-2',
|
12
|
-
credentials: Aws::Credentials.new(ENV['ACCESS_KEY'], ENV['SECRET_KEY'])
|
13
|
-
})
|
14
|
-
|
15
|
-
Dynamoid.configure do |config|
|
16
|
-
config.namespace = "dynamoid_tests"
|
17
|
-
config.endpoint = 'http://127.0.0.1:30180'
|
18
|
-
config.warn_on_scan = false
|
19
|
-
end
|
20
|
-
|
21
|
-
Dynamoid.logger.level = Logger::FATAL
|
22
|
-
|
23
|
-
RSpec.configure do |c|
|
24
|
-
c.before(:each) do
|
25
|
-
Dynamoid.adapter.list_tables.each do |table|
|
26
|
-
Dynamoid.adapter.delete_table(table) if table =~ /^#{Dynamoid::Config.namespace}/
|
27
|
-
end
|
28
|
-
Dynamoid.adapter.tables.clear
|
29
|
-
end
|
30
|
-
end
|
31
|
-
rescue LoadError
|
32
|
-
puts "dynamoid gem not found, not running Dynamoid specs \e[31m#{'✖'}\e[0m"
|
33
|
-
end
|
data/spec/spec_helpers/redis.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
begin
|
3
|
-
require 'redis-objects'
|
4
|
-
puts "redis-objects gem found, running Redis specs \e[32m#{'✔'}\e[0m"
|
5
|
-
|
6
|
-
Redis.current = Redis.new(host: '127.0.0.1', port: 6379)
|
7
|
-
|
8
|
-
RSpec.configure do |c|
|
9
|
-
c.before(:each) do
|
10
|
-
Redis.current.keys('redis_*').each { |k| Redis.current.del k }
|
11
|
-
end
|
12
|
-
end
|
13
|
-
rescue LoadError
|
14
|
-
puts "redis-objects gem not found, not running Redis specs \e[31m#{'✖'}\e[0m"
|
15
|
-
end
|
@@ -1 +0,0 @@
|
|
1
|
-
AASM::Configuration.hide_warnings = true
|
data/spec/spec_helpers/sequel.rb
DELETED
data/spec/unit/api_spec.rb
DELETED
@@ -1,100 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
if defined?(ActiveRecord)
|
4
|
-
require 'models/default_state.rb'
|
5
|
-
require 'models/provided_state.rb'
|
6
|
-
require 'models/active_record/persisted_state.rb'
|
7
|
-
require 'models/active_record/provided_and_persisted_state.rb'
|
8
|
-
|
9
|
-
load_schema
|
10
|
-
|
11
|
-
describe "reading the current state" do
|
12
|
-
it "uses the AASM default" do
|
13
|
-
expect(DefaultState.new.aasm.current_state).to eql :alpha
|
14
|
-
end
|
15
|
-
|
16
|
-
it "uses the provided method" do
|
17
|
-
expect(ProvidedState.new.aasm.current_state).to eql :beta
|
18
|
-
end
|
19
|
-
|
20
|
-
it "uses the persistence storage" do
|
21
|
-
expect(PersistedState.new.aasm.current_state).to eql :alpha
|
22
|
-
end
|
23
|
-
|
24
|
-
it "uses the provided method even if persisted" do
|
25
|
-
expect(ProvidedAndPersistedState.new.aasm.current_state).to eql :gamma
|
26
|
-
end
|
27
|
-
|
28
|
-
context "after dup" do
|
29
|
-
it "uses the persistence storage" do
|
30
|
-
source = PersistedState.create!
|
31
|
-
copy = source.dup
|
32
|
-
copy.save!
|
33
|
-
|
34
|
-
copy.release!
|
35
|
-
|
36
|
-
expect(source.aasm_state).to eql 'alpha'
|
37
|
-
expect(source.aasm.current_state).to eql :alpha
|
38
|
-
|
39
|
-
source2 = PersistedState.find(source.id)
|
40
|
-
expect(source2.reload.aasm_state).to eql 'alpha'
|
41
|
-
expect(source2.aasm.current_state).to eql :alpha
|
42
|
-
|
43
|
-
expect(copy.aasm_state).to eql 'beta'
|
44
|
-
expect(copy.aasm.current_state).to eql :beta
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
describe "writing and persisting the current state" do
|
50
|
-
it "uses the AASM default" do
|
51
|
-
o = DefaultState.new
|
52
|
-
o.release!
|
53
|
-
expect(o.persisted_store).to be_nil
|
54
|
-
end
|
55
|
-
|
56
|
-
it "uses the provided method" do
|
57
|
-
o = ProvidedState.new
|
58
|
-
o.release!
|
59
|
-
expect(o.persisted_store).to eql :beta
|
60
|
-
end
|
61
|
-
|
62
|
-
it "uses the persistence storage" do
|
63
|
-
o = PersistedState.new
|
64
|
-
o.release!
|
65
|
-
expect(o.persisted_store).to be_nil
|
66
|
-
end
|
67
|
-
|
68
|
-
it "uses the provided method even if persisted" do
|
69
|
-
o = ProvidedAndPersistedState.new
|
70
|
-
o.release!
|
71
|
-
expect(o.persisted_store).to eql :beta
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
describe "writing the current state without persisting it" do
|
76
|
-
it "uses the AASM default" do
|
77
|
-
o = DefaultState.new
|
78
|
-
o.release
|
79
|
-
expect(o.transient_store).to be_nil
|
80
|
-
end
|
81
|
-
|
82
|
-
it "uses the provided method" do
|
83
|
-
o = ProvidedState.new
|
84
|
-
o.release
|
85
|
-
expect(o.transient_store).to eql :beta
|
86
|
-
end
|
87
|
-
|
88
|
-
it "uses the persistence storage" do
|
89
|
-
o = PersistedState.new
|
90
|
-
o.release
|
91
|
-
expect(o.transient_store).to be_nil
|
92
|
-
end
|
93
|
-
|
94
|
-
it "uses the provided method even if persisted" do
|
95
|
-
o = ProvidedAndPersistedState.new
|
96
|
-
o.release
|
97
|
-
expect(o.transient_store).to eql :beta
|
98
|
-
end
|
99
|
-
end
|
100
|
-
end
|
@@ -1,10 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe 'on initialization' do
|
4
|
-
let(:example) { BasicTwoStateMachinesExample.new }
|
5
|
-
|
6
|
-
it 'should be in the initial state' do
|
7
|
-
expect(example.aasm(:search).current_state).to eql :initialised
|
8
|
-
expect(example.aasm(:sync).current_state).to eql :unsynced
|
9
|
-
end
|
10
|
-
end
|