aasm 4.12.3 → 5.1.1
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/.github/ISSUE_TEMPLATE/bug_report.md +27 -0
- data/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
- data/.travis.yml +48 -18
- data/Appraisals +50 -26
- data/CHANGELOG.md +75 -3
- data/Dockerfile +44 -0
- data/Gemfile +2 -3
- data/README.md +216 -110
- data/aasm.gemspec +2 -0
- data/docker-compose.yml +40 -0
- data/gemfiles/norails.gemfile +10 -0
- data/gemfiles/rails_4.2.gemfile +9 -8
- data/gemfiles/rails_4.2_mongoid_5.gemfile +6 -5
- data/gemfiles/rails_4.2_nobrainer.gemfile +9 -0
- data/gemfiles/rails_5.0.gemfile +6 -6
- data/gemfiles/rails_5.0_nobrainer.gemfile +9 -0
- data/gemfiles/rails_5.1.gemfile +14 -0
- data/gemfiles/rails_5.2.gemfile +14 -0
- data/lib/aasm.rb +5 -2
- data/lib/aasm/aasm.rb +30 -27
- data/lib/aasm/base.rb +25 -7
- data/lib/aasm/core/event.rb +14 -24
- 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 +47 -0
- data/lib/aasm/core/invokers/proc_invoker.rb +59 -0
- data/lib/aasm/core/state.rb +10 -9
- data/lib/aasm/core/transition.rb +7 -68
- data/lib/aasm/errors.rb +4 -3
- data/lib/aasm/instance_base.rb +16 -4
- data/lib/aasm/persistence.rb +3 -0
- data/lib/aasm/persistence/active_record_persistence.rb +25 -5
- data/lib/aasm/persistence/base.rb +1 -1
- 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 +23 -19
- 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/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/generators/aasm/orm_helpers.rb +6 -0
- data/lib/generators/active_record/aasm_generator.rb +3 -1
- data/lib/generators/nobrainer/aasm_generator.rb +28 -0
- data/lib/motion-aasm.rb +1 -0
- data/spec/database.rb +16 -1
- data/spec/en.yml +0 -3
- data/spec/generators/active_record_generator_spec.rb +6 -0
- data/spec/generators/no_brainer_generator_spec.rb +29 -0
- data/spec/{en_deprecated_style.yml → localizer_test_model_deprecated_style.yml} +0 -4
- data/spec/localizer_test_model_new_style.yml +5 -0
- data/spec/models/active_record/active_record_callback.rb +93 -0
- data/spec/models/active_record/instance_level_skip_validation_example.rb +19 -0
- data/spec/models/active_record/localizer_test_model.rb +3 -3
- data/spec/models/active_record/person.rb +23 -0
- data/spec/models/active_record/simple_new_dsl.rb +15 -0
- data/spec/models/active_record/work.rb +3 -0
- data/spec/models/callbacks/with_state_arg.rb +5 -1
- data/spec/models/callbacks/with_state_arg_multiple.rb +4 -1
- data/spec/models/default_state.rb +1 -1
- data/spec/models/nobrainer/complex_no_brainer_example.rb +36 -0
- data/spec/models/nobrainer/invalid_persistor_no_brainer.rb +39 -0
- data/spec/models/nobrainer/no_scope_no_brainer.rb +21 -0
- data/spec/models/nobrainer/nobrainer_relationships.rb +25 -0
- data/spec/models/nobrainer/silent_persistor_no_brainer.rb +39 -0
- data/spec/models/nobrainer/simple_new_dsl_nobrainer.rb +25 -0
- data/spec/models/nobrainer/simple_no_brainer.rb +23 -0
- data/spec/models/nobrainer/validator_no_brainer.rb +98 -0
- data/spec/models/simple_example.rb +8 -0
- data/spec/models/simple_example_with_guard_args.rb +17 -0
- data/spec/spec_helper.rb +15 -0
- data/spec/spec_helpers/active_record.rb +2 -1
- data/spec/spec_helpers/dynamoid.rb +7 -5
- data/spec/spec_helpers/mongoid.rb +20 -1
- data/spec/spec_helpers/nobrainer.rb +15 -0
- data/spec/spec_helpers/redis.rb +5 -2
- data/spec/spec_helpers/sequel.rb +1 -1
- data/spec/unit/abstract_class_spec.rb +27 -0
- data/spec/unit/api_spec.rb +4 -0
- data/spec/unit/callback_multiple_spec.rb +7 -3
- data/spec/unit/callbacks_spec.rb +32 -2
- data/spec/unit/complex_example_spec.rb +0 -1
- data/spec/unit/event_spec.rb +13 -0
- data/spec/unit/exception_spec.rb +1 -1
- data/spec/unit/inspection_multiple_spec.rb +9 -5
- data/spec/unit/inspection_spec.rb +7 -3
- data/spec/unit/invoker_spec.rb +189 -0
- data/spec/unit/invokers/base_invoker_spec.rb +72 -0
- data/spec/unit/invokers/class_invoker_spec.rb +95 -0
- data/spec/unit/invokers/literal_invoker_spec.rb +86 -0
- data/spec/unit/invokers/proc_invoker_spec.rb +86 -0
- data/spec/unit/localizer_spec.rb +9 -10
- data/spec/unit/persistence/active_record_persistence_multiple_spec.rb +4 -4
- data/spec/unit/persistence/active_record_persistence_spec.rb +109 -4
- data/spec/unit/persistence/mongoid_persistence_multiple_spec.rb +0 -4
- data/spec/unit/persistence/mongoid_persistence_spec.rb +0 -4
- data/spec/unit/persistence/no_brainer_persistence_multiple_spec.rb +198 -0
- data/spec/unit/persistence/no_brainer_persistence_spec.rb +158 -0
- data/spec/unit/rspec_matcher_spec.rb +9 -0
- data/spec/unit/simple_example_spec.rb +15 -0
- data/spec/unit/state_spec.rb +23 -7
- data/spec/unit/transition_spec.rb +1 -1
- data/test/minitest_helper.rb +2 -2
- data/test/unit/minitest_matcher_test.rb +1 -1
- metadata +106 -12
- data/callbacks.txt +0 -51
- data/gemfiles/rails_3.2.gemfile +0 -13
- data/gemfiles/rails_4.0.gemfile +0 -15
@@ -0,0 +1,158 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
if defined?(NoBrainer::Document)
|
4
|
+
describe 'nobrainer' do
|
5
|
+
Dir[File.dirname(__FILE__) + '/../../models/nobrainer/*.rb'].sort.each do |f|
|
6
|
+
require File.expand_path(f)
|
7
|
+
end
|
8
|
+
|
9
|
+
before(:all) do
|
10
|
+
# if you want to see the statements while running the spec enable the
|
11
|
+
# following line
|
12
|
+
# NoBrainer.configure do |config|
|
13
|
+
# config.logger = Logger.new(STDERR)
|
14
|
+
# end
|
15
|
+
end
|
16
|
+
|
17
|
+
after do
|
18
|
+
NoBrainer.purge!
|
19
|
+
end
|
20
|
+
|
21
|
+
describe 'named scopes with the old DSL' do
|
22
|
+
context 'Does not already respond_to? the scope name' do
|
23
|
+
it 'should add a scope for each state' do
|
24
|
+
expect(SimpleNoBrainer).to respond_to(:unknown_scope)
|
25
|
+
expect(SimpleNoBrainer).to respond_to(:another_unknown_scope)
|
26
|
+
|
27
|
+
expect(SimpleNoBrainer.unknown_scope.class).to eq(NoBrainer::Criteria)
|
28
|
+
expect(SimpleNoBrainer.another_unknown_scope.class).to eq(NoBrainer::Criteria)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
context 'Already respond_to? the scope name' do
|
33
|
+
it 'should not add a scope' do
|
34
|
+
expect(SimpleNoBrainer).to respond_to(:new)
|
35
|
+
expect(SimpleNoBrainer.new.class).to eq(SimpleNoBrainer)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
describe 'named scopes with the new DSL' do
|
41
|
+
context 'Does not already respond_to? the scope name' do
|
42
|
+
it 'should add a scope' do
|
43
|
+
expect(SimpleNewDslNoBrainer).to respond_to(:unknown_scope)
|
44
|
+
expect(SimpleNewDslNoBrainer.unknown_scope.class).to eq(NoBrainer::Criteria)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
context 'Already respond_to? the scope name' do
|
49
|
+
it 'should not add a scope' do
|
50
|
+
expect(SimpleNewDslNoBrainer).to respond_to(:new)
|
51
|
+
expect(SimpleNewDslNoBrainer.new.class).to eq(SimpleNewDslNoBrainer)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'does not create scopes if requested' do
|
56
|
+
expect(NoScopeNoBrainer).not_to respond_to(:ignored_scope)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
describe 'instance methods' do
|
61
|
+
let(:simple) { SimpleNewDslNoBrainer.new }
|
62
|
+
|
63
|
+
it 'should initialize the aasm state on instantiation' do
|
64
|
+
expect(SimpleNewDslNoBrainer.new.status).to eql 'unknown_scope'
|
65
|
+
expect(SimpleNewDslNoBrainer.new.aasm.current_state).to eql :unknown_scope
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
describe 'relations object' do
|
70
|
+
it 'should load relations object ids' do
|
71
|
+
parent = Parent.create
|
72
|
+
child_1 = Child.create(parent_id: parent.id)
|
73
|
+
child_2 = Child.create(parent_id: parent.id)
|
74
|
+
expect(parent.childs.pluck(:id, :status).map(&:id)).to eql [child_1.id, child_2.id]
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
describe 'transitions with persistence' do
|
79
|
+
it 'should work for valid models' do
|
80
|
+
valid_object = ValidatorNoBrainer.create(name: 'name')
|
81
|
+
expect(valid_object).to be_sleeping
|
82
|
+
valid_object.status = :running
|
83
|
+
expect(valid_object).to be_running
|
84
|
+
end
|
85
|
+
|
86
|
+
it 'should not store states for invalid models' do
|
87
|
+
validator = ValidatorNoBrainer.create(name: 'name')
|
88
|
+
expect(validator).to be_valid
|
89
|
+
expect(validator).to be_sleeping
|
90
|
+
|
91
|
+
validator.name = nil
|
92
|
+
expect(validator).not_to be_valid
|
93
|
+
expect { validator.run! }.to raise_error(NoBrainer::Error::DocumentInvalid)
|
94
|
+
expect(validator).to be_sleeping
|
95
|
+
|
96
|
+
validator.reload
|
97
|
+
expect(validator).not_to be_running
|
98
|
+
expect(validator).to be_sleeping
|
99
|
+
|
100
|
+
validator.name = 'another name'
|
101
|
+
expect(validator).to be_valid
|
102
|
+
expect(validator.run!).to be_truthy
|
103
|
+
expect(validator).to be_running
|
104
|
+
|
105
|
+
validator.reload
|
106
|
+
expect(validator).to be_running
|
107
|
+
expect(validator).not_to be_sleeping
|
108
|
+
end
|
109
|
+
|
110
|
+
it 'should not store states for invalid models silently if configured' do
|
111
|
+
validator = SilentPersistorNoBrainer.create(name: 'name')
|
112
|
+
expect(validator).to be_valid
|
113
|
+
expect(validator).to be_sleeping
|
114
|
+
|
115
|
+
validator.name = nil
|
116
|
+
expect(validator).not_to be_valid
|
117
|
+
expect(validator.run!).to be_falsey
|
118
|
+
expect(validator).to be_sleeping
|
119
|
+
|
120
|
+
validator.reload
|
121
|
+
expect(validator).not_to be_running
|
122
|
+
expect(validator).to be_sleeping
|
123
|
+
|
124
|
+
validator.name = 'another name'
|
125
|
+
expect(validator).to be_valid
|
126
|
+
expect(validator.run!).to be_truthy
|
127
|
+
expect(validator).to be_running
|
128
|
+
|
129
|
+
validator.reload
|
130
|
+
expect(validator).to be_running
|
131
|
+
expect(validator).not_to be_sleeping
|
132
|
+
end
|
133
|
+
|
134
|
+
it 'should store states for invalid models if configured' do
|
135
|
+
persistor = InvalidPersistorNoBrainer.create(name: 'name')
|
136
|
+
expect(persistor).to be_valid
|
137
|
+
expect(persistor).to be_sleeping
|
138
|
+
|
139
|
+
persistor.name = nil
|
140
|
+
|
141
|
+
expect(persistor).not_to be_valid
|
142
|
+
expect(persistor.run!).to be_truthy
|
143
|
+
expect(persistor).to be_running
|
144
|
+
|
145
|
+
persistor = InvalidPersistorNoBrainer.find(persistor.id)
|
146
|
+
|
147
|
+
persistor.valid?
|
148
|
+
expect(persistor).to be_valid
|
149
|
+
expect(persistor).to be_running
|
150
|
+
expect(persistor).not_to be_sleeping
|
151
|
+
|
152
|
+
persistor.reload
|
153
|
+
expect(persistor).to be_running
|
154
|
+
expect(persistor).not_to be_sleeping
|
155
|
+
end
|
156
|
+
end
|
157
|
+
end
|
158
|
+
end
|
@@ -8,14 +8,17 @@ describe 'state machine' do
|
|
8
8
|
it "works for simple state machines" do
|
9
9
|
expect(simple).to transition_from(:initialised).to(:filled_out).on_event(:fill_out)
|
10
10
|
expect(simple).to_not transition_from(:initialised).to(:authorised).on_event(:fill_out)
|
11
|
+
expect(simple).to_not transition_from(:authorised).to(:filled_out).on_event(:fill_out)
|
11
12
|
end
|
12
13
|
|
13
14
|
it "works for multiple state machines" do
|
14
15
|
expect(multiple).to transition_from(:standing).to(:walking).on_event(:walk).on(:move)
|
15
16
|
expect(multiple).to_not transition_from(:standing).to(:running).on_event(:walk).on(:move)
|
17
|
+
expect(multiple).to_not transition_from(:running).to(:walking).on_event(:walk).on(:move)
|
16
18
|
|
17
19
|
expect(multiple).to transition_from(:sleeping).to(:processing).on_event(:start).on(:work)
|
18
20
|
expect(multiple).to_not transition_from(:sleeping).to(:sleeping).on_event(:start).on(:work)
|
21
|
+
expect(multiple).to_not transition_from(:processing).to(:sleeping).on_event(:start).on(:work)
|
19
22
|
end
|
20
23
|
end
|
21
24
|
|
@@ -63,6 +66,12 @@ describe 'state machine' do
|
|
63
66
|
expect(simple).to allow_event :authorise
|
64
67
|
end
|
65
68
|
|
69
|
+
it "works with custom arguments" do
|
70
|
+
example = SimpleExampleWithGuardArgs.new
|
71
|
+
expect(example).to allow_event(:fill_out_with_args).with(true)
|
72
|
+
expect(example).to_not allow_event(:fill_out_with_args).with(false)
|
73
|
+
end
|
74
|
+
|
66
75
|
it "works for multiple state machines" do
|
67
76
|
expect(multiple).to allow_event(:walk).on(:move)
|
68
77
|
expect(multiple).to_not allow_event(:hold).on(:move)
|
@@ -23,6 +23,21 @@ describe 'state machine' do
|
|
23
23
|
expect(simple).to be_authorised
|
24
24
|
end
|
25
25
|
|
26
|
+
it 'shows the permitted transitions' do
|
27
|
+
expect(simple.aasm.permitted_transitions).to eq(
|
28
|
+
[
|
29
|
+
{ event: :fill_out, state: :filled_out },
|
30
|
+
{ event: :deny, state: :denied }
|
31
|
+
]
|
32
|
+
)
|
33
|
+
|
34
|
+
simple.fill_out!
|
35
|
+
expect(simple.aasm.permitted_transitions).to eq([{ event: :authorise, state: :authorised }])
|
36
|
+
|
37
|
+
simple.authorise
|
38
|
+
expect(simple.aasm.permitted_transitions).to eq([])
|
39
|
+
end
|
40
|
+
|
26
41
|
it 'denies transitions to other states' do
|
27
42
|
expect {simple.authorise}.to raise_error(AASM::InvalidTransition)
|
28
43
|
expect {simple.authorise!}.to raise_error(AASM::InvalidTransition)
|
data/spec/unit/state_spec.rb
CHANGED
@@ -17,12 +17,28 @@ describe AASM::Core::State do
|
|
17
17
|
expect(state.name).to eq(:astate)
|
18
18
|
end
|
19
19
|
|
20
|
-
|
21
|
-
|
22
|
-
|
20
|
+
describe '#display_name' do
|
21
|
+
subject(:display_name) { new_state(options).display_name }
|
22
|
+
|
23
|
+
context 'without options' do
|
24
|
+
let(:options) { {} }
|
25
|
+
|
26
|
+
context 'without I18n' do
|
27
|
+
before { allow(Module).to receive(:const_defined?).with(:I18n).and_return(nil) }
|
28
|
+
|
29
|
+
it 'should set the display_name from name' do
|
30
|
+
expect(display_name).to eq('Astate')
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
23
34
|
|
24
|
-
|
25
|
-
|
35
|
+
context 'with :display option' do
|
36
|
+
let(:options) { { display: "A State" } }
|
37
|
+
|
38
|
+
it 'should set the display_name from options' do
|
39
|
+
expect(display_name).to eq('A State')
|
40
|
+
end
|
41
|
+
end
|
26
42
|
end
|
27
43
|
|
28
44
|
it 'should set the options and expose them as options' do
|
@@ -64,7 +80,7 @@ describe AASM::Core::State do
|
|
64
80
|
expect(record).to receive(:c)
|
65
81
|
expect(record).to receive(:foobar)
|
66
82
|
|
67
|
-
state.fire_callbacks(:entering, record)
|
83
|
+
state.fire_callbacks(:entering, record, record)
|
68
84
|
end
|
69
85
|
|
70
86
|
it "should stop calling actions if one of them raises :halt_aasm_chain" do
|
@@ -84,6 +100,6 @@ describe AASM::Core::State do
|
|
84
100
|
record = double('record')
|
85
101
|
expect(record).to receive(:foobar)
|
86
102
|
|
87
|
-
state.fire_callbacks(:entering, record)
|
103
|
+
state.fire_callbacks(:entering, record, record)
|
88
104
|
end
|
89
105
|
end
|
@@ -6,7 +6,7 @@ describe 'transitions' do
|
|
6
6
|
process = ProcessWithNewDsl.new
|
7
7
|
expect { process.stop! }.to raise_error do |err|
|
8
8
|
expect(err.class).to eql(AASM::InvalidTransition)
|
9
|
-
expect(err.message).to eql("Event 'stop' cannot transition from 'sleeping'.
|
9
|
+
expect(err.message).to eql("Event 'stop' cannot transition from 'sleeping'.")
|
10
10
|
expect(err.object).to eql(process)
|
11
11
|
expect(err.event_name).to eql(:stop)
|
12
12
|
end
|
data/test/minitest_helper.rb
CHANGED
@@ -34,8 +34,8 @@ begin
|
|
34
34
|
})
|
35
35
|
|
36
36
|
Dynamoid.configure do |config|
|
37
|
-
config.namespace =
|
38
|
-
config.endpoint = '
|
37
|
+
config.namespace = 'dynamoid_tests'
|
38
|
+
config.endpoint = "http://#{ENV['DYNAMODB_HOST'] || '127.0.0.1'}:30180"
|
39
39
|
config.warn_on_scan = false
|
40
40
|
end
|
41
41
|
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aasm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 5.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thorsten Boettger
|
8
8
|
- Anil Maurya
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2020-08-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: concurrent-ruby
|
@@ -95,6 +95,40 @@ dependencies:
|
|
95
95
|
- - ">="
|
96
96
|
- !ruby/object:Gem::Version
|
97
97
|
version: '0'
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: simplecov
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ">="
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '0'
|
105
|
+
type: :development
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - ">="
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0'
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: codecov
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - ">="
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: 0.1.17
|
119
|
+
- - "<"
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
version: 0.1.20
|
122
|
+
type: :development
|
123
|
+
prerelease: false
|
124
|
+
version_requirements: !ruby/object:Gem::Requirement
|
125
|
+
requirements:
|
126
|
+
- - ">="
|
127
|
+
- !ruby/object:Gem::Version
|
128
|
+
version: 0.1.17
|
129
|
+
- - "<"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: 0.1.20
|
98
132
|
- !ruby/object:Gem::Dependency
|
99
133
|
name: pry
|
100
134
|
requirement: !ruby/object:Gem::Requirement
|
@@ -117,6 +151,8 @@ extensions: []
|
|
117
151
|
extra_rdoc_files: []
|
118
152
|
files:
|
119
153
|
- ".document"
|
154
|
+
- ".github/ISSUE_TEMPLATE/bug_report.md"
|
155
|
+
- ".github/ISSUE_TEMPLATE/feature_request.md"
|
120
156
|
- ".gitignore"
|
121
157
|
- ".travis.yml"
|
122
158
|
- API
|
@@ -124,6 +160,7 @@ files:
|
|
124
160
|
- CHANGELOG.md
|
125
161
|
- CODE_OF_CONDUCT.md
|
126
162
|
- CONTRIBUTING.md
|
163
|
+
- Dockerfile
|
127
164
|
- Gemfile
|
128
165
|
- Gemfile.lock_old
|
129
166
|
- HOWTO
|
@@ -134,17 +171,25 @@ files:
|
|
134
171
|
- Rakefile
|
135
172
|
- TESTING.md
|
136
173
|
- aasm.gemspec
|
137
|
-
-
|
138
|
-
- gemfiles/
|
139
|
-
- gemfiles/rails_4.0.gemfile
|
174
|
+
- docker-compose.yml
|
175
|
+
- gemfiles/norails.gemfile
|
140
176
|
- gemfiles/rails_4.2.gemfile
|
141
177
|
- gemfiles/rails_4.2_mongoid_5.gemfile
|
178
|
+
- gemfiles/rails_4.2_nobrainer.gemfile
|
142
179
|
- gemfiles/rails_5.0.gemfile
|
180
|
+
- gemfiles/rails_5.0_nobrainer.gemfile
|
181
|
+
- gemfiles/rails_5.1.gemfile
|
182
|
+
- gemfiles/rails_5.2.gemfile
|
143
183
|
- lib/aasm.rb
|
144
184
|
- lib/aasm/aasm.rb
|
145
185
|
- lib/aasm/base.rb
|
146
186
|
- lib/aasm/configuration.rb
|
147
187
|
- lib/aasm/core/event.rb
|
188
|
+
- lib/aasm/core/invoker.rb
|
189
|
+
- lib/aasm/core/invokers/base_invoker.rb
|
190
|
+
- lib/aasm/core/invokers/class_invoker.rb
|
191
|
+
- lib/aasm/core/invokers/literal_invoker.rb
|
192
|
+
- lib/aasm/core/invokers/proc_invoker.rb
|
148
193
|
- lib/aasm/core/state.rb
|
149
194
|
- lib/aasm/core/transition.rb
|
150
195
|
- lib/aasm/dsl_helper.rb
|
@@ -163,6 +208,7 @@ files:
|
|
163
208
|
- lib/aasm/persistence/core_data_query_persistence.rb
|
164
209
|
- lib/aasm/persistence/dynamoid_persistence.rb
|
165
210
|
- lib/aasm/persistence/mongoid_persistence.rb
|
211
|
+
- lib/aasm/persistence/no_brainer_persistence.rb
|
166
212
|
- lib/aasm/persistence/orm.rb
|
167
213
|
- lib/aasm/persistence/plain_persistence.rb
|
168
214
|
- lib/aasm/persistence/redis_persistence.rb
|
@@ -181,23 +227,29 @@ files:
|
|
181
227
|
- lib/generators/active_record/templates/migration.rb
|
182
228
|
- lib/generators/active_record/templates/migration_existing.rb
|
183
229
|
- lib/generators/mongoid/aasm_generator.rb
|
230
|
+
- lib/generators/nobrainer/aasm_generator.rb
|
184
231
|
- lib/motion-aasm.rb
|
185
232
|
- spec/database.rb
|
186
233
|
- spec/database.yml
|
187
234
|
- spec/en.yml
|
188
|
-
- spec/en_deprecated_style.yml
|
189
235
|
- spec/generators/active_record_generator_spec.rb
|
190
236
|
- spec/generators/mongoid_generator_spec.rb
|
237
|
+
- spec/generators/no_brainer_generator_spec.rb
|
238
|
+
- spec/localizer_test_model_deprecated_style.yml
|
239
|
+
- spec/localizer_test_model_new_style.yml
|
240
|
+
- spec/models/active_record/active_record_callback.rb
|
191
241
|
- spec/models/active_record/basic_active_record_two_state_machines_example.rb
|
192
242
|
- spec/models/active_record/complex_active_record_example.rb
|
193
243
|
- spec/models/active_record/derivate_new_dsl.rb
|
194
244
|
- spec/models/active_record/false_state.rb
|
195
245
|
- spec/models/active_record/gate.rb
|
246
|
+
- spec/models/active_record/instance_level_skip_validation_example.rb
|
196
247
|
- spec/models/active_record/invalid_persistor.rb
|
197
248
|
- spec/models/active_record/localizer_test_model.rb
|
198
249
|
- spec/models/active_record/no_direct_assignment.rb
|
199
250
|
- spec/models/active_record/no_scope.rb
|
200
251
|
- spec/models/active_record/persisted_state.rb
|
252
|
+
- spec/models/active_record/person.rb
|
201
253
|
- spec/models/active_record/provided_and_persisted_state.rb
|
202
254
|
- spec/models/active_record/reader.rb
|
203
255
|
- spec/models/active_record/readme_job.rb
|
@@ -211,6 +263,7 @@ files:
|
|
211
263
|
- spec/models/active_record/with_enum_without_column.rb
|
212
264
|
- spec/models/active_record/with_false_enum.rb
|
213
265
|
- spec/models/active_record/with_true_enum.rb
|
266
|
+
- spec/models/active_record/work.rb
|
214
267
|
- spec/models/active_record/worker.rb
|
215
268
|
- spec/models/active_record/writer.rb
|
216
269
|
- spec/models/basic_two_state_machines_example.rb
|
@@ -254,6 +307,14 @@ files:
|
|
254
307
|
- spec/models/multiple_transitions_that_differ_only_by_guard.rb
|
255
308
|
- spec/models/namespaced_multiple_example.rb
|
256
309
|
- spec/models/no_initial_state.rb
|
310
|
+
- spec/models/nobrainer/complex_no_brainer_example.rb
|
311
|
+
- spec/models/nobrainer/invalid_persistor_no_brainer.rb
|
312
|
+
- spec/models/nobrainer/no_scope_no_brainer.rb
|
313
|
+
- spec/models/nobrainer/nobrainer_relationships.rb
|
314
|
+
- spec/models/nobrainer/silent_persistor_no_brainer.rb
|
315
|
+
- spec/models/nobrainer/simple_new_dsl_nobrainer.rb
|
316
|
+
- spec/models/nobrainer/simple_no_brainer.rb
|
317
|
+
- spec/models/nobrainer/validator_no_brainer.rb
|
257
318
|
- spec/models/not_auto_loaded/process.rb
|
258
319
|
- spec/models/parametrised_event.rb
|
259
320
|
- spec/models/parametrised_event_multiple.rb
|
@@ -273,6 +334,7 @@ files:
|
|
273
334
|
- spec/models/silencer.rb
|
274
335
|
- spec/models/simple_custom_example.rb
|
275
336
|
- spec/models/simple_example.rb
|
337
|
+
- spec/models/simple_example_with_guard_args.rb
|
276
338
|
- spec/models/simple_multiple_example.rb
|
277
339
|
- spec/models/state_machine_with_failed_event.rb
|
278
340
|
- spec/models/states_on_one_line_example.rb
|
@@ -286,9 +348,11 @@ files:
|
|
286
348
|
- spec/spec_helpers/active_record.rb
|
287
349
|
- spec/spec_helpers/dynamoid.rb
|
288
350
|
- spec/spec_helpers/mongoid.rb
|
351
|
+
- spec/spec_helpers/nobrainer.rb
|
289
352
|
- spec/spec_helpers/redis.rb
|
290
353
|
- spec/spec_helpers/remove_warnings.rb
|
291
354
|
- spec/spec_helpers/sequel.rb
|
355
|
+
- spec/unit/abstract_class_spec.rb
|
292
356
|
- spec/unit/api_spec.rb
|
293
357
|
- spec/unit/basic_two_state_machines_example_spec.rb
|
294
358
|
- spec/unit/callback_multiple_spec.rb
|
@@ -310,6 +374,11 @@ files:
|
|
310
374
|
- spec/unit/initial_state_spec.rb
|
311
375
|
- spec/unit/inspection_multiple_spec.rb
|
312
376
|
- spec/unit/inspection_spec.rb
|
377
|
+
- spec/unit/invoker_spec.rb
|
378
|
+
- spec/unit/invokers/base_invoker_spec.rb
|
379
|
+
- spec/unit/invokers/class_invoker_spec.rb
|
380
|
+
- spec/unit/invokers/literal_invoker_spec.rb
|
381
|
+
- spec/unit/invokers/proc_invoker_spec.rb
|
313
382
|
- spec/unit/localizer_spec.rb
|
314
383
|
- spec/unit/memory_leak_spec.rb
|
315
384
|
- spec/unit/multiple_transitions_that_differ_only_by_guard_spec.rb
|
@@ -322,6 +391,8 @@ files:
|
|
322
391
|
- spec/unit/persistence/dynamoid_persistence_spec.rb
|
323
392
|
- spec/unit/persistence/mongoid_persistence_multiple_spec.rb
|
324
393
|
- spec/unit/persistence/mongoid_persistence_spec.rb
|
394
|
+
- spec/unit/persistence/no_brainer_persistence_multiple_spec.rb
|
395
|
+
- spec/unit/persistence/no_brainer_persistence_spec.rb
|
325
396
|
- spec/unit/persistence/redis_persistence_multiple_spec.rb
|
326
397
|
- spec/unit/persistence/redis_persistence_spec.rb
|
327
398
|
- spec/unit/persistence/sequel_persistence_multiple_spec.rb
|
@@ -343,7 +414,7 @@ homepage: https://github.com/aasm/aasm
|
|
343
414
|
licenses:
|
344
415
|
- MIT
|
345
416
|
metadata: {}
|
346
|
-
post_install_message:
|
417
|
+
post_install_message:
|
347
418
|
rdoc_options: []
|
348
419
|
require_paths:
|
349
420
|
- lib
|
@@ -358,28 +429,32 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
358
429
|
- !ruby/object:Gem::Version
|
359
430
|
version: '0'
|
360
431
|
requirements: []
|
361
|
-
|
362
|
-
|
363
|
-
signing_key:
|
432
|
+
rubygems_version: 3.0.3
|
433
|
+
signing_key:
|
364
434
|
specification_version: 4
|
365
435
|
summary: State machine mixin for Ruby objects
|
366
436
|
test_files:
|
367
437
|
- spec/database.rb
|
368
438
|
- spec/database.yml
|
369
439
|
- spec/en.yml
|
370
|
-
- spec/en_deprecated_style.yml
|
371
440
|
- spec/generators/active_record_generator_spec.rb
|
372
441
|
- spec/generators/mongoid_generator_spec.rb
|
442
|
+
- spec/generators/no_brainer_generator_spec.rb
|
443
|
+
- spec/localizer_test_model_deprecated_style.yml
|
444
|
+
- spec/localizer_test_model_new_style.yml
|
445
|
+
- spec/models/active_record/active_record_callback.rb
|
373
446
|
- spec/models/active_record/basic_active_record_two_state_machines_example.rb
|
374
447
|
- spec/models/active_record/complex_active_record_example.rb
|
375
448
|
- spec/models/active_record/derivate_new_dsl.rb
|
376
449
|
- spec/models/active_record/false_state.rb
|
377
450
|
- spec/models/active_record/gate.rb
|
451
|
+
- spec/models/active_record/instance_level_skip_validation_example.rb
|
378
452
|
- spec/models/active_record/invalid_persistor.rb
|
379
453
|
- spec/models/active_record/localizer_test_model.rb
|
380
454
|
- spec/models/active_record/no_direct_assignment.rb
|
381
455
|
- spec/models/active_record/no_scope.rb
|
382
456
|
- spec/models/active_record/persisted_state.rb
|
457
|
+
- spec/models/active_record/person.rb
|
383
458
|
- spec/models/active_record/provided_and_persisted_state.rb
|
384
459
|
- spec/models/active_record/reader.rb
|
385
460
|
- spec/models/active_record/readme_job.rb
|
@@ -393,6 +468,7 @@ test_files:
|
|
393
468
|
- spec/models/active_record/with_enum_without_column.rb
|
394
469
|
- spec/models/active_record/with_false_enum.rb
|
395
470
|
- spec/models/active_record/with_true_enum.rb
|
471
|
+
- spec/models/active_record/work.rb
|
396
472
|
- spec/models/active_record/worker.rb
|
397
473
|
- spec/models/active_record/writer.rb
|
398
474
|
- spec/models/basic_two_state_machines_example.rb
|
@@ -436,6 +512,14 @@ test_files:
|
|
436
512
|
- spec/models/multiple_transitions_that_differ_only_by_guard.rb
|
437
513
|
- spec/models/namespaced_multiple_example.rb
|
438
514
|
- spec/models/no_initial_state.rb
|
515
|
+
- spec/models/nobrainer/complex_no_brainer_example.rb
|
516
|
+
- spec/models/nobrainer/invalid_persistor_no_brainer.rb
|
517
|
+
- spec/models/nobrainer/no_scope_no_brainer.rb
|
518
|
+
- spec/models/nobrainer/nobrainer_relationships.rb
|
519
|
+
- spec/models/nobrainer/silent_persistor_no_brainer.rb
|
520
|
+
- spec/models/nobrainer/simple_new_dsl_nobrainer.rb
|
521
|
+
- spec/models/nobrainer/simple_no_brainer.rb
|
522
|
+
- spec/models/nobrainer/validator_no_brainer.rb
|
439
523
|
- spec/models/not_auto_loaded/process.rb
|
440
524
|
- spec/models/parametrised_event.rb
|
441
525
|
- spec/models/parametrised_event_multiple.rb
|
@@ -455,6 +539,7 @@ test_files:
|
|
455
539
|
- spec/models/silencer.rb
|
456
540
|
- spec/models/simple_custom_example.rb
|
457
541
|
- spec/models/simple_example.rb
|
542
|
+
- spec/models/simple_example_with_guard_args.rb
|
458
543
|
- spec/models/simple_multiple_example.rb
|
459
544
|
- spec/models/state_machine_with_failed_event.rb
|
460
545
|
- spec/models/states_on_one_line_example.rb
|
@@ -468,9 +553,11 @@ test_files:
|
|
468
553
|
- spec/spec_helpers/active_record.rb
|
469
554
|
- spec/spec_helpers/dynamoid.rb
|
470
555
|
- spec/spec_helpers/mongoid.rb
|
556
|
+
- spec/spec_helpers/nobrainer.rb
|
471
557
|
- spec/spec_helpers/redis.rb
|
472
558
|
- spec/spec_helpers/remove_warnings.rb
|
473
559
|
- spec/spec_helpers/sequel.rb
|
560
|
+
- spec/unit/abstract_class_spec.rb
|
474
561
|
- spec/unit/api_spec.rb
|
475
562
|
- spec/unit/basic_two_state_machines_example_spec.rb
|
476
563
|
- spec/unit/callback_multiple_spec.rb
|
@@ -492,6 +579,11 @@ test_files:
|
|
492
579
|
- spec/unit/initial_state_spec.rb
|
493
580
|
- spec/unit/inspection_multiple_spec.rb
|
494
581
|
- spec/unit/inspection_spec.rb
|
582
|
+
- spec/unit/invoker_spec.rb
|
583
|
+
- spec/unit/invokers/base_invoker_spec.rb
|
584
|
+
- spec/unit/invokers/class_invoker_spec.rb
|
585
|
+
- spec/unit/invokers/literal_invoker_spec.rb
|
586
|
+
- spec/unit/invokers/proc_invoker_spec.rb
|
495
587
|
- spec/unit/localizer_spec.rb
|
496
588
|
- spec/unit/memory_leak_spec.rb
|
497
589
|
- spec/unit/multiple_transitions_that_differ_only_by_guard_spec.rb
|
@@ -504,6 +596,8 @@ test_files:
|
|
504
596
|
- spec/unit/persistence/dynamoid_persistence_spec.rb
|
505
597
|
- spec/unit/persistence/mongoid_persistence_multiple_spec.rb
|
506
598
|
- spec/unit/persistence/mongoid_persistence_spec.rb
|
599
|
+
- spec/unit/persistence/no_brainer_persistence_multiple_spec.rb
|
600
|
+
- spec/unit/persistence/no_brainer_persistence_spec.rb
|
507
601
|
- spec/unit/persistence/redis_persistence_multiple_spec.rb
|
508
602
|
- spec/unit/persistence/redis_persistence_spec.rb
|
509
603
|
- spec/unit/persistence/sequel_persistence_multiple_spec.rb
|