aasm 4.11.1 → 4.12.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 +4 -4
- data/.travis.yml +19 -16
- data/Appraisals +46 -0
- data/CHANGELOG.md +19 -0
- data/CONTRIBUTING.md +24 -0
- data/Gemfile +4 -21
- data/README.md +154 -39
- data/Rakefile +6 -1
- data/TESTING.md +25 -0
- data/aasm.gemspec +3 -0
- data/gemfiles/rails_3.2.gemfile +13 -0
- data/gemfiles/rails_4.0.gemfile +8 -9
- data/gemfiles/rails_4.2.gemfile +10 -9
- data/gemfiles/rails_4.2_mongoid_5.gemfile +5 -9
- data/gemfiles/rails_5.0.gemfile +8 -16
- data/lib/aasm/aasm.rb +9 -3
- data/lib/aasm/base.rb +11 -1
- data/lib/aasm/configuration.rb +4 -0
- data/lib/aasm/core/event.rb +18 -4
- data/lib/aasm/core/state.rb +7 -0
- data/lib/aasm/core/transition.rb +10 -1
- data/lib/aasm/instance_base.rb +0 -2
- 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 +25 -101
- data/lib/aasm/persistence/base.rb +7 -3
- data/lib/aasm/persistence/mongoid_persistence.rb +25 -31
- data/lib/aasm/persistence/orm.rb +142 -0
- data/lib/aasm/persistence/redis_persistence.rb +16 -11
- data/lib/aasm/persistence/sequel_persistence.rb +36 -63
- data/lib/aasm/persistence.rb +0 -3
- data/lib/aasm/state_machine.rb +4 -2
- data/lib/aasm/state_machine_store.rb +5 -2
- data/lib/aasm/version.rb +1 -1
- data/lib/generators/active_record/templates/migration.rb +1 -1
- data/lib/generators/active_record/templates/migration_existing.rb +1 -1
- data/lib/motion-aasm.rb +2 -1
- data/spec/generators/active_record_generator_spec.rb +42 -39
- data/spec/generators/mongoid_generator_spec.rb +4 -6
- data/spec/models/active_record/complex_active_record_example.rb +5 -1
- data/spec/models/{invalid_persistor.rb → active_record/invalid_persistor.rb} +0 -2
- data/spec/models/{silent_persistor.rb → active_record/silent_persistor.rb} +0 -2
- data/spec/models/{transactor.rb → active_record/transactor.rb} +0 -2
- data/spec/models/{validator.rb → active_record/validator.rb} +0 -2
- data/spec/models/callbacks/basic.rb +5 -2
- data/spec/models/guard_with_params.rb +1 -1
- data/spec/models/guardian_without_from_specified.rb +18 -0
- data/spec/models/mongoid/invalid_persistor_mongoid.rb +39 -0
- data/spec/models/mongoid/silent_persistor_mongoid.rb +39 -0
- data/spec/models/mongoid/validator_mongoid.rb +100 -0
- data/spec/models/multiple_transitions_that_differ_only_by_guard.rb +31 -0
- data/spec/models/namespaced_multiple_example.rb +14 -0
- data/spec/models/parametrised_event.rb +7 -0
- data/spec/models/{mongo_mapper/complex_mongo_mapper_example.rb → redis/complex_redis_example.rb} +8 -5
- data/spec/models/redis/redis_multiple.rb +20 -0
- data/spec/models/redis/redis_simple.rb +20 -0
- data/spec/models/sequel/complex_sequel_example.rb +4 -3
- data/spec/models/sequel/invalid_persistor.rb +52 -0
- data/spec/models/sequel/sequel_multiple.rb +13 -13
- data/spec/models/sequel/sequel_simple.rb +13 -12
- data/spec/models/sequel/silent_persistor.rb +50 -0
- data/spec/models/sequel/transactor.rb +112 -0
- data/spec/models/sequel/validator.rb +93 -0
- data/spec/models/sequel/worker.rb +12 -0
- data/spec/models/simple_multiple_example.rb +12 -0
- data/spec/models/sub_class.rb +34 -0
- data/spec/spec_helper.rb +0 -33
- data/spec/spec_helpers/active_record.rb +7 -0
- data/spec/spec_helpers/dynamoid.rb +33 -0
- data/spec/spec_helpers/mongoid.rb +7 -0
- data/spec/spec_helpers/redis.rb +15 -0
- data/spec/spec_helpers/remove_warnings.rb +1 -0
- data/spec/spec_helpers/sequel.rb +7 -0
- data/spec/unit/api_spec.rb +76 -73
- data/spec/unit/callbacks_spec.rb +5 -0
- data/spec/unit/event_spec.rb +12 -0
- data/spec/unit/guard_spec.rb +17 -0
- data/spec/unit/guard_with_params_spec.rb +4 -0
- data/spec/unit/guard_without_from_specified_spec.rb +10 -0
- data/spec/unit/localizer_spec.rb +55 -53
- data/spec/unit/multiple_transitions_that_differ_only_by_guard_spec.rb +14 -0
- data/spec/unit/namespaced_multiple_example_spec.rb +22 -0
- data/spec/unit/override_warning_spec.rb +8 -0
- data/spec/unit/persistence/active_record_persistence_multiple_spec.rb +453 -449
- data/spec/unit/persistence/active_record_persistence_spec.rb +524 -502
- data/spec/unit/persistence/dynamoid_persistence_multiple_spec.rb +4 -9
- data/spec/unit/persistence/dynamoid_persistence_spec.rb +4 -9
- data/spec/unit/persistence/mongoid_persistence_multiple_spec.rb +83 -9
- data/spec/unit/persistence/mongoid_persistence_spec.rb +85 -9
- data/spec/unit/persistence/redis_persistence_multiple_spec.rb +88 -0
- data/spec/unit/persistence/redis_persistence_spec.rb +8 -32
- data/spec/unit/persistence/sequel_persistence_multiple_spec.rb +6 -11
- data/spec/unit/persistence/sequel_persistence_spec.rb +278 -10
- data/spec/unit/simple_multiple_example_spec.rb +28 -0
- data/spec/unit/subclassing_multiple_spec.rb +37 -2
- data/spec/unit/subclassing_spec.rb +17 -2
- data/test/minitest_helper.rb +57 -0
- data/test/unit/minitest_matcher_test.rb +80 -0
- metadata +99 -28
- data/gemfiles/rails_3.2_stable.gemfile +0 -15
- data/gemfiles/rails_4.0_mongo_mapper.gemfile +0 -16
- data/gemfiles/rails_4.2_mongo_mapper.gemfile +0 -17
- data/lib/aasm/persistence/mongo_mapper_persistence.rb +0 -163
- 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/unit/persistence/mongo_mapper_persistence_multiple_spec.rb +0 -149
- data/spec/unit/persistence/mongo_mapper_persistence_spec.rb +0 -96
- /data/spec/models/{worker.rb → active_record/worker.rb} +0 -0
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
require 'spec_helper'
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
if defined?(Dynamoid)
|
|
4
|
+
describe 'dynamoid' do
|
|
6
5
|
|
|
7
6
|
Dir[File.dirname(__FILE__) + "/../../models/dynamoid/*.rb"].sort.each do |f|
|
|
8
7
|
require File.expand_path(f)
|
|
@@ -132,9 +131,5 @@ describe 'dynamoid' do
|
|
|
132
131
|
end
|
|
133
132
|
end
|
|
134
133
|
|
|
135
|
-
rescue LoadError
|
|
136
|
-
puts "------------------------------------------------------------------------"
|
|
137
|
-
puts "Not running Dynamoid multiple-specs because dynamoid gem is not installed!!!"
|
|
138
|
-
puts "------------------------------------------------------------------------"
|
|
139
134
|
end
|
|
140
135
|
end
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
require 'spec_helper'
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
if defined?(Dynamoid)
|
|
4
|
+
describe 'dynamoid' do
|
|
6
5
|
|
|
7
6
|
Dir[File.dirname(__FILE__) + "/../../models/dynamoid/*.rb"].sort.each do |f|
|
|
8
7
|
require File.expand_path(f)
|
|
@@ -81,9 +80,5 @@ describe 'dynamoid' do
|
|
|
81
80
|
end
|
|
82
81
|
end
|
|
83
82
|
|
|
84
|
-
rescue LoadError
|
|
85
|
-
puts "------------------------------------------------------------------------"
|
|
86
|
-
puts "Not running Dynamoid specs because dynamoid gem is not installed!!!"
|
|
87
|
-
puts "------------------------------------------------------------------------"
|
|
88
83
|
end
|
|
89
84
|
end
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
require 'spec_helper'
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
if defined?(Mongoid::Document)
|
|
4
|
+
describe 'mongoid' do
|
|
6
5
|
|
|
7
6
|
Dir[File.dirname(__FILE__) + "/../../models/mongoid/*.rb"].sort.each do |f|
|
|
8
7
|
require File.expand_path(f)
|
|
@@ -72,6 +71,85 @@ describe 'mongoid' do
|
|
|
72
71
|
|
|
73
72
|
end
|
|
74
73
|
|
|
74
|
+
describe 'transitions with persistence' do
|
|
75
|
+
|
|
76
|
+
it "should work for valid models" do
|
|
77
|
+
valid_object = MultipleValidatorMongoid.create(:name => 'name')
|
|
78
|
+
expect(valid_object).to be_sleeping
|
|
79
|
+
valid_object.status = :running
|
|
80
|
+
expect(valid_object).to be_running
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
it 'should not store states for invalid models' do
|
|
84
|
+
validator = MultipleValidatorMongoid.create(:name => 'name')
|
|
85
|
+
expect(validator).to be_valid
|
|
86
|
+
expect(validator).to be_sleeping
|
|
87
|
+
|
|
88
|
+
validator.name = nil
|
|
89
|
+
expect(validator).not_to be_valid
|
|
90
|
+
expect { validator.run! }.to raise_error(Mongoid::Errors::Validations)
|
|
91
|
+
expect(validator).to be_sleeping
|
|
92
|
+
|
|
93
|
+
validator.reload
|
|
94
|
+
expect(validator).not_to be_running
|
|
95
|
+
expect(validator).to be_sleeping
|
|
96
|
+
|
|
97
|
+
validator.name = 'another name'
|
|
98
|
+
expect(validator).to be_valid
|
|
99
|
+
expect(validator.run!).to be_truthy
|
|
100
|
+
expect(validator).to be_running
|
|
101
|
+
|
|
102
|
+
validator.reload
|
|
103
|
+
expect(validator).to be_running
|
|
104
|
+
expect(validator).not_to be_sleeping
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
it 'should not store states for invalid models silently if configured' do
|
|
108
|
+
validator = MultipleSilentPersistorMongoid.create(:name => 'name')
|
|
109
|
+
expect(validator).to be_valid
|
|
110
|
+
expect(validator).to be_sleeping
|
|
111
|
+
|
|
112
|
+
validator.name = nil
|
|
113
|
+
expect(validator).not_to be_valid
|
|
114
|
+
expect(validator.run!).to be_falsey
|
|
115
|
+
expect(validator).to be_sleeping
|
|
116
|
+
|
|
117
|
+
validator.reload
|
|
118
|
+
expect(validator).not_to be_running
|
|
119
|
+
expect(validator).to be_sleeping
|
|
120
|
+
|
|
121
|
+
validator.name = 'another name'
|
|
122
|
+
expect(validator).to be_valid
|
|
123
|
+
expect(validator.run!).to be_truthy
|
|
124
|
+
expect(validator).to be_running
|
|
125
|
+
|
|
126
|
+
validator.reload
|
|
127
|
+
expect(validator).to be_running
|
|
128
|
+
expect(validator).not_to be_sleeping
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
it 'should store states for invalid models if configured' do
|
|
132
|
+
persistor = MultipleInvalidPersistorMongoid.create(:name => 'name')
|
|
133
|
+
expect(persistor).to be_valid
|
|
134
|
+
expect(persistor).to be_sleeping
|
|
135
|
+
|
|
136
|
+
persistor.name = nil
|
|
137
|
+
expect(persistor).not_to be_valid
|
|
138
|
+
expect(persistor.run!).to be_truthy
|
|
139
|
+
expect(persistor).to be_running
|
|
140
|
+
|
|
141
|
+
persistor = MultipleInvalidPersistorMongoid.find(persistor.id)
|
|
142
|
+
persistor.valid?
|
|
143
|
+
expect(persistor).to be_valid
|
|
144
|
+
expect(persistor).to be_running
|
|
145
|
+
expect(persistor).not_to be_sleeping
|
|
146
|
+
|
|
147
|
+
persistor.reload
|
|
148
|
+
expect(persistor).to be_running
|
|
149
|
+
expect(persistor).not_to be_sleeping
|
|
150
|
+
end
|
|
151
|
+
end
|
|
152
|
+
|
|
75
153
|
describe "complex example" do
|
|
76
154
|
it "works" do
|
|
77
155
|
record = ComplexMongoidExample.new
|
|
@@ -122,9 +200,5 @@ describe 'mongoid' do
|
|
|
122
200
|
end
|
|
123
201
|
end
|
|
124
202
|
|
|
125
|
-
rescue LoadError
|
|
126
|
-
puts "--------------------------------------------------------------------------"
|
|
127
|
-
puts "Not running Mongoid multiple-specs because mongoid gem is not installed!!!"
|
|
128
|
-
puts "--------------------------------------------------------------------------"
|
|
129
203
|
end
|
|
130
204
|
end
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
require 'spec_helper'
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
if defined?(Mongoid::Document)
|
|
4
|
+
describe 'mongoid' do
|
|
6
5
|
|
|
7
6
|
Dir[File.dirname(__FILE__) + "/../../models/mongoid/*.rb"].sort.each do |f|
|
|
8
7
|
require File.expand_path(f)
|
|
@@ -85,9 +84,86 @@ describe 'mongoid' do
|
|
|
85
84
|
|
|
86
85
|
end
|
|
87
86
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
87
|
+
describe 'transitions with persistence' do
|
|
88
|
+
|
|
89
|
+
it 'should work for valid models' do
|
|
90
|
+
valid_object = ValidatorMongoid.create(:name => 'name')
|
|
91
|
+
expect(valid_object).to be_sleeping
|
|
92
|
+
valid_object.status = :running
|
|
93
|
+
expect(valid_object).to be_running
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
it 'should not store states for invalid models' do
|
|
97
|
+
validator = ValidatorMongoid.create(:name => 'name')
|
|
98
|
+
expect(validator).to be_valid
|
|
99
|
+
expect(validator).to be_sleeping
|
|
100
|
+
|
|
101
|
+
validator.name = nil
|
|
102
|
+
expect(validator).not_to be_valid
|
|
103
|
+
expect { validator.run! }.to raise_error(Mongoid::Errors::Validations)
|
|
104
|
+
expect(validator).to be_sleeping
|
|
105
|
+
|
|
106
|
+
validator.reload
|
|
107
|
+
expect(validator).not_to be_running
|
|
108
|
+
expect(validator).to be_sleeping
|
|
109
|
+
|
|
110
|
+
validator.name = 'another name'
|
|
111
|
+
expect(validator).to be_valid
|
|
112
|
+
expect(validator.run!).to be_truthy
|
|
113
|
+
expect(validator).to be_running
|
|
114
|
+
|
|
115
|
+
validator.reload
|
|
116
|
+
expect(validator).to be_running
|
|
117
|
+
expect(validator).not_to be_sleeping
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
it 'should not store states for invalid models silently if configured' do
|
|
121
|
+
validator = SilentPersistorMongoid.create(:name => 'name')
|
|
122
|
+
expect(validator).to be_valid
|
|
123
|
+
expect(validator).to be_sleeping
|
|
124
|
+
|
|
125
|
+
validator.name = nil
|
|
126
|
+
expect(validator).not_to be_valid
|
|
127
|
+
expect(validator.run!).to be_falsey
|
|
128
|
+
expect(validator).to be_sleeping
|
|
129
|
+
|
|
130
|
+
validator.reload
|
|
131
|
+
expect(validator).not_to be_running
|
|
132
|
+
expect(validator).to be_sleeping
|
|
133
|
+
|
|
134
|
+
validator.name = 'another name'
|
|
135
|
+
expect(validator).to be_valid
|
|
136
|
+
expect(validator.run!).to be_truthy
|
|
137
|
+
expect(validator).to be_running
|
|
138
|
+
|
|
139
|
+
validator.reload
|
|
140
|
+
expect(validator).to be_running
|
|
141
|
+
expect(validator).not_to be_sleeping
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
it 'should store states for invalid models if configured' do
|
|
145
|
+
persistor = InvalidPersistorMongoid.create(:name => 'name')
|
|
146
|
+
expect(persistor).to be_valid
|
|
147
|
+
expect(persistor).to be_sleeping
|
|
148
|
+
|
|
149
|
+
persistor.name = nil
|
|
150
|
+
|
|
151
|
+
expect(persistor).not_to be_valid
|
|
152
|
+
expect(persistor.run!).to be_truthy
|
|
153
|
+
expect(persistor).to be_running
|
|
154
|
+
|
|
155
|
+
persistor = InvalidPersistorMongoid.find(persistor.id)
|
|
156
|
+
|
|
157
|
+
persistor.valid?
|
|
158
|
+
expect(persistor).to be_valid
|
|
159
|
+
expect(persistor).to be_running
|
|
160
|
+
expect(persistor).not_to be_sleeping
|
|
161
|
+
|
|
162
|
+
persistor.reload
|
|
163
|
+
expect(persistor).to be_running
|
|
164
|
+
expect(persistor).not_to be_sleeping
|
|
165
|
+
end
|
|
166
|
+
end
|
|
167
|
+
|
|
92
168
|
end
|
|
93
169
|
end
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
if defined?(Redis)
|
|
4
|
+
describe 'redis' do
|
|
5
|
+
|
|
6
|
+
Dir[File.dirname(__FILE__) + "/../../models/redis/*.rb"].sort.each do |f|
|
|
7
|
+
require File.expand_path(f)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
before(:all) do
|
|
11
|
+
@model = RedisMultiple
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
describe "instance methods" do
|
|
15
|
+
let(:model) {@model.new}
|
|
16
|
+
|
|
17
|
+
it "should respond to aasm persistence methods" do
|
|
18
|
+
expect(model).to respond_to(:aasm_read_state)
|
|
19
|
+
expect(model).to respond_to(:aasm_write_state)
|
|
20
|
+
expect(model).to respond_to(:aasm_write_state_without_persistence)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it "should return the initial state when new and the aasm field is nil" do
|
|
24
|
+
expect(model.aasm(:left).current_state).to eq(:alpha)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
it "should save the initial state" do
|
|
28
|
+
expect(model.status).to eq("alpha")
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it "should return the aasm column the aasm field is not nil" do
|
|
32
|
+
model.status = "beta"
|
|
33
|
+
expect(model.aasm(:left).current_state).to eq(:beta)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
it "should allow a nil state" do
|
|
37
|
+
model.status = nil
|
|
38
|
+
expect(model.aasm(:left).current_state).to be_nil
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
describe 'subclasses' do
|
|
43
|
+
it "should have the same states as its parent class" do
|
|
44
|
+
expect(Class.new(@model).aasm(:left).states).to eq(@model.aasm(:left).states)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
it "should have the same events as its parent class" do
|
|
48
|
+
expect(Class.new(@model).aasm(:left).events).to eq(@model.aasm(:left).events)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
it "should have the same column as its parent even for the new dsl" do
|
|
52
|
+
expect(@model.aasm(:left).attribute_name).to eq(:status)
|
|
53
|
+
expect(Class.new(@model).aasm(:left).attribute_name).to eq(:status)
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
describe "complex example" do
|
|
58
|
+
it "works" do
|
|
59
|
+
record = RedisComplexExample.new
|
|
60
|
+
|
|
61
|
+
expect(record.aasm(:left).current_state).to eql :one
|
|
62
|
+
expect(record.aasm(:right).current_state).to eql :alpha
|
|
63
|
+
|
|
64
|
+
expect_aasm_states record, :one, :alpha
|
|
65
|
+
|
|
66
|
+
record.increment!
|
|
67
|
+
expect_aasm_states record, :two, :alpha
|
|
68
|
+
|
|
69
|
+
record.level_up!
|
|
70
|
+
expect_aasm_states record, :two, :beta
|
|
71
|
+
|
|
72
|
+
record.increment!
|
|
73
|
+
expect { record.increment! }.to raise_error(AASM::InvalidTransition)
|
|
74
|
+
expect_aasm_states record, :three, :beta
|
|
75
|
+
|
|
76
|
+
record.level_up!
|
|
77
|
+
expect_aasm_states record, :three, :gamma
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
def expect_aasm_states(record, left_state, right_state)
|
|
81
|
+
expect(record.aasm(:left).current_state).to eql left_state.to_sym
|
|
82
|
+
expect(record.left.value.to_s).to eql left_state.to_s
|
|
83
|
+
expect(record.aasm(:right).current_state).to eql right_state.to_sym
|
|
84
|
+
expect(record.right.value.to_s).to eql right_state.to_s
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
end
|
|
@@ -1,35 +1,14 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
1
2
|
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
require 'redis-objects'
|
|
5
|
-
require 'logger'
|
|
6
|
-
require 'spec_helper'
|
|
3
|
+
if defined?(Redis::Objects)
|
|
4
|
+
describe 'redis' do
|
|
7
5
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
@model = Class.new do
|
|
12
|
-
attr_accessor :default
|
|
13
|
-
|
|
14
|
-
include Redis::Objects
|
|
15
|
-
include AASM
|
|
16
|
-
|
|
17
|
-
value :status
|
|
18
|
-
|
|
19
|
-
def id
|
|
20
|
-
1
|
|
21
|
-
end
|
|
6
|
+
Dir[File.dirname(__FILE__) + "/../../models/redis/*.rb"].sort.each do |f|
|
|
7
|
+
require File.expand_path(f)
|
|
8
|
+
end
|
|
22
9
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
state :alpha, initial: true
|
|
26
|
-
state :beta
|
|
27
|
-
state :gamma
|
|
28
|
-
event :release do
|
|
29
|
-
transitions from: [:alpha, :beta, :gamma], to: :beta
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
10
|
+
before(:all) do
|
|
11
|
+
@model = RedisSimple
|
|
33
12
|
end
|
|
34
13
|
|
|
35
14
|
describe "instance methods" do
|
|
@@ -70,8 +49,5 @@ describe 'redis' do
|
|
|
70
49
|
expect(Class.new(@model).aasm.attribute_name).to eq(:status)
|
|
71
50
|
end
|
|
72
51
|
end
|
|
73
|
-
|
|
74
|
-
rescue LoadError
|
|
75
|
-
puts "Not running Redis specs because sequel gem is not installed!!!"
|
|
76
52
|
end
|
|
77
53
|
end
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
require 'spec_helper'
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
if defined?(Sequel)
|
|
4
|
+
describe 'sequel' do
|
|
6
5
|
|
|
7
6
|
Dir[File.dirname(__FILE__) + "/../../models/sequel/*.rb"].sort.each do |f|
|
|
8
7
|
require File.expand_path(f)
|
|
9
8
|
end
|
|
10
9
|
|
|
11
10
|
before(:all) do
|
|
12
|
-
@model =
|
|
11
|
+
@model = Sequel::Multiple
|
|
13
12
|
end
|
|
14
13
|
|
|
15
14
|
describe "instance methods" do
|
|
@@ -94,7 +93,7 @@ describe 'sequel' do
|
|
|
94
93
|
|
|
95
94
|
describe "complex example" do
|
|
96
95
|
it "works" do
|
|
97
|
-
record =
|
|
96
|
+
record = Sequel::ComplexExample.new
|
|
98
97
|
expect(record.aasm(:left).current_state).to eql :one
|
|
99
98
|
expect(record.left).to be_nil
|
|
100
99
|
expect(record.aasm(:right).current_state).to eql :alpha
|
|
@@ -145,9 +144,5 @@ describe 'sequel' do
|
|
|
145
144
|
end
|
|
146
145
|
end
|
|
147
146
|
|
|
148
|
-
rescue LoadError
|
|
149
|
-
puts "------------------------------------------------------------------------"
|
|
150
|
-
puts "Not running Sequel multiple-specs because sequel gem is not installed!!!"
|
|
151
|
-
puts "------------------------------------------------------------------------"
|
|
152
147
|
end
|
|
153
148
|
end
|