active_remote 2.2.0 → 2.3.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 +4 -4
- data/.rspec +2 -1
- data/active_remote.gemspec +3 -4
- data/lib/active_remote/persistence.rb +21 -3
- data/lib/active_remote/search.rb +1 -3
- data/lib/active_remote/version.rb +1 -1
- data/spec/lib/active_remote/association_spec.rb +10 -10
- data/spec/lib/active_remote/bulk_spec.rb +6 -6
- data/spec/lib/active_remote/dirty_spec.rb +1 -1
- data/spec/lib/active_remote/persistence_spec.rb +40 -9
- data/spec/lib/active_remote/rpc_spec.rb +2 -2
- data/spec/lib/active_remote/scope_keys_spec.rb +2 -2
- data/spec/lib/active_remote/search_spec.rb +6 -6
- data/spec/lib/active_remote/serialization_spec.rb +2 -2
- data/spec/spec_helper.rb +9 -0
- metadata +9 -23
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c89356033a37c579df65b431907bfdff0754d560
|
4
|
+
data.tar.gz: 3c31cbc7d4f0ac128112374a4baf7fe847d18adf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 96e1753ea1f51bbe1a64bc40dc39c76d9cb35f2dd27be42cfecb3b4628c8953819fe590b1c480439db6422208e2bad84dfa3913c230d054b1e7af1b209fc16d5
|
7
|
+
data.tar.gz: 300112bd7a7cb192297ef6f668d7366f2d9d6acd2ab9f0de377ad75ac1ca8d893e1d46b15363e8cc023f691713441e4c62c671f38663ce01c8f4ef1084edd986
|
data/.rspec
CHANGED
data/active_remote.gemspec
CHANGED
@@ -26,12 +26,11 @@ Gem::Specification.new do |s|
|
|
26
26
|
##
|
27
27
|
# Development Dependencies
|
28
28
|
#
|
29
|
-
s.add_development_dependency "better_receive"
|
30
29
|
s.add_development_dependency "rake"
|
31
|
-
s.add_development_dependency "rspec"
|
30
|
+
s.add_development_dependency "rspec", ">= 3.3.0"
|
32
31
|
s.add_development_dependency "rspec-its"
|
33
|
-
s.add_development_dependency "rspec-pride"
|
32
|
+
s.add_development_dependency "rspec-pride", ">= 3.1.0"
|
34
33
|
s.add_development_dependency "pry"
|
35
|
-
s.add_development_dependency "protobuf-rspec", ">= 1.
|
34
|
+
s.add_development_dependency "protobuf-rspec", ">= 1.1.2"
|
36
35
|
s.add_development_dependency "simplecov"
|
37
36
|
end
|
@@ -202,6 +202,22 @@ module ActiveRemote
|
|
202
202
|
return ! has_errors?
|
203
203
|
end
|
204
204
|
|
205
|
+
# Updates a single attribute and saves the record.
|
206
|
+
# This is especially useful for boolean flags on existing records. Also note that
|
207
|
+
#
|
208
|
+
# * Validation is skipped.
|
209
|
+
# * Callbacks are invoked.
|
210
|
+
# * Updates all the attributes that are dirty in this object.
|
211
|
+
#
|
212
|
+
# This method raises an ActiveRemote::ReadOnlyRemoteRecord if the
|
213
|
+
# attribute is marked as readonly.
|
214
|
+
def update_attribute(name, value)
|
215
|
+
raise ReadOnlyRemoteRecord if readonly?
|
216
|
+
name = name.to_s
|
217
|
+
send("#{name}=", value)
|
218
|
+
save(:validate => false)
|
219
|
+
end
|
220
|
+
|
205
221
|
# Updates the attributes of the remote record from the passed-in hash and
|
206
222
|
# saves the remote record. If the object is invalid, it will have error
|
207
223
|
# messages and false will be returned.
|
@@ -210,6 +226,7 @@ module ActiveRemote
|
|
210
226
|
assign_attributes(attributes)
|
211
227
|
save
|
212
228
|
end
|
229
|
+
alias_method :update, :update_attributes
|
213
230
|
|
214
231
|
# Updates the attributes of the remote record from the passed-in hash and
|
215
232
|
# saves the remote record. If the object is invalid, an
|
@@ -219,13 +236,14 @@ module ActiveRemote
|
|
219
236
|
assign_attributes(attributes)
|
220
237
|
save!
|
221
238
|
end
|
239
|
+
alias_method :update!, :update_attributes!
|
222
240
|
|
223
241
|
private
|
224
242
|
|
225
243
|
# Handles creating a remote object and serializing it's attributes and
|
226
244
|
# errors from the response.
|
227
245
|
#
|
228
|
-
def
|
246
|
+
def remote_create
|
229
247
|
run_callbacks :create do
|
230
248
|
# Use the getter here so we get the type casting.
|
231
249
|
new_attributes = attributes
|
@@ -247,14 +265,14 @@ module ActiveRemote
|
|
247
265
|
#
|
248
266
|
def create_or_update(*args)
|
249
267
|
raise ReadOnlyRemoteRecord if readonly?
|
250
|
-
new_record? ?
|
268
|
+
new_record? ? remote_create : remote_update(*args)
|
251
269
|
end
|
252
270
|
|
253
271
|
# Handles updating a remote object and serializing it's attributes and
|
254
272
|
# errors from the response. Only attributes with the given attribute names
|
255
273
|
# (plus :guid) will be updated. Defaults to all attributes.
|
256
274
|
#
|
257
|
-
def
|
275
|
+
def remote_update(attribute_names = @attributes.keys)
|
258
276
|
run_callbacks :update do
|
259
277
|
# Use the getter here so we get the type casting.
|
260
278
|
updated_attributes = attributes
|
data/lib/active_remote/search.rb
CHANGED
@@ -134,9 +134,7 @@ module ActiveRemote
|
|
134
134
|
# Reload this record from the remote service.
|
135
135
|
#
|
136
136
|
def reload
|
137
|
-
|
138
|
-
|
139
|
-
fresh_object = self.class.instantiate(response.to_hash)
|
137
|
+
fresh_object = self.class.find(scope_key_hash)
|
140
138
|
@attributes.update(fresh_object.instance_variable_get('@attributes'))
|
141
139
|
end
|
142
140
|
end
|
@@ -47,18 +47,18 @@ describe ActiveRemote::Association do
|
|
47
47
|
end
|
48
48
|
|
49
49
|
context 'when user_guid doesnt exist on model 'do
|
50
|
-
before { allow(subject).to
|
50
|
+
before { allow(subject.class).to receive_message_chain(:public_instance_methods, :include?).with(:user_guid).and_return(false) }
|
51
51
|
|
52
52
|
it 'raises an error' do
|
53
|
-
expect {subject.user}.to raise_error
|
53
|
+
expect {subject.user}.to raise_error(::RuntimeError, /Could not find attribute/)
|
54
54
|
end
|
55
55
|
end
|
56
56
|
|
57
57
|
context 'when user_guid doesnt exist on associated model 'do
|
58
|
-
before { Author.
|
58
|
+
before { allow(Author).to receive_message_chain(:public_instance_methods, :include?).with(:user_guid).and_return(false) }
|
59
59
|
|
60
60
|
it 'raises an error' do
|
61
|
-
expect {subject.user}.to raise_error
|
61
|
+
expect {subject.user}.to raise_error(::RuntimeError, /Could not find attribute/)
|
62
62
|
end
|
63
63
|
end
|
64
64
|
end
|
@@ -154,15 +154,15 @@ describe ActiveRemote::Association do
|
|
154
154
|
before { allow(subject).to receive(:respond_to?).with("user_guid").and_return(false) }
|
155
155
|
|
156
156
|
it 'raises an error' do
|
157
|
-
expect {subject.user_posts}.to raise_error
|
157
|
+
expect {subject.user_posts}.to raise_error(::ActiveAttr::UnknownAttributeError)
|
158
158
|
end
|
159
159
|
end
|
160
160
|
|
161
161
|
context 'when user_guid doesnt exist on associated model 'do
|
162
|
-
before { Post.
|
162
|
+
before { allow(Post).to receive_message_chain(:public_instance_methods, :include?).with(:user_guid).and_return(false) }
|
163
163
|
|
164
164
|
it 'raises an error' do
|
165
|
-
expect {subject.user_posts}.to raise_error
|
165
|
+
expect {subject.user_posts}.to raise_error(::RuntimeError, /Could not find attribute/)
|
166
166
|
end
|
167
167
|
end
|
168
168
|
end
|
@@ -237,15 +237,15 @@ describe ActiveRemote::Association do
|
|
237
237
|
before { allow(subject).to receive(:respond_to?).with("user_guid").and_return(false) }
|
238
238
|
|
239
239
|
it 'raises an error' do
|
240
|
-
expect {subject.chief_editor}.to raise_error
|
240
|
+
expect {subject.chief_editor}.to raise_error(::ActiveAttr::UnknownAttributeError)
|
241
241
|
end
|
242
242
|
end
|
243
243
|
|
244
244
|
context 'when user_guid doesnt exist on associated model 'do
|
245
|
-
before { Author.
|
245
|
+
before { allow(Author).to receive_message_chain(:public_instance_methods, :include?).with(:user_guid).and_return(false) }
|
246
246
|
|
247
247
|
it 'raises an error' do
|
248
|
-
expect {subject.chief_editor}.to raise_error
|
248
|
+
expect {subject.chief_editor}.to raise_error(::RuntimeError, /Could not find attribute/)
|
249
249
|
end
|
250
250
|
end
|
251
251
|
end
|
@@ -6,15 +6,15 @@ describe ActiveRemote::Bulk do
|
|
6
6
|
let(:response) { double(:response, :records => []) }
|
7
7
|
let(:rpc) { ::ActiveRemote::RPCAdapters::ProtobufAdapter.new(::Tag.service_class) }
|
8
8
|
|
9
|
-
before { rpc.
|
10
|
-
before { ::Tag.
|
9
|
+
before { allow(rpc).to receive(:execute).and_return(response) }
|
10
|
+
before { allow(::Tag).to receive(:rpc).and_return(rpc) }
|
11
11
|
|
12
12
|
context "given an empty array" do
|
13
13
|
let(:parsed_records) { { :records => records } }
|
14
14
|
let(:records) { [] }
|
15
15
|
|
16
16
|
it "calls #{bulk_method} with parsed records" do
|
17
|
-
rpc.
|
17
|
+
expect(rpc).to receive(:execute).with(bulk_method, parsed_records)
|
18
18
|
Tag.__send__(bulk_method, records)
|
19
19
|
end
|
20
20
|
end
|
@@ -25,7 +25,7 @@ describe ActiveRemote::Bulk do
|
|
25
25
|
let(:records) { [ hash_record ] }
|
26
26
|
|
27
27
|
it "calls #{bulk_method} with parsed records" do
|
28
|
-
rpc.
|
28
|
+
expect(rpc).to receive(:execute).with(bulk_method, parsed_records)
|
29
29
|
Tag.__send__(bulk_method, records)
|
30
30
|
end
|
31
31
|
end
|
@@ -36,7 +36,7 @@ describe ActiveRemote::Bulk do
|
|
36
36
|
let(:remote_record) { double(:remote, :attributes => {}) }
|
37
37
|
|
38
38
|
it "calls #{bulk_method} with parsed records" do
|
39
|
-
rpc.
|
39
|
+
expect(rpc).to receive(:execute).with(bulk_method, parsed_records)
|
40
40
|
Tag.__send__(bulk_method, records)
|
41
41
|
end
|
42
42
|
end
|
@@ -47,7 +47,7 @@ describe ActiveRemote::Bulk do
|
|
47
47
|
let(:tags) { Generic::Remote::Tags.new(:records => [ tag ]) }
|
48
48
|
|
49
49
|
it "calls #{bulk_method} with parsed records" do
|
50
|
-
rpc.
|
50
|
+
expect(rpc).to receive(:execute).with(bulk_method, parsed_records)
|
51
51
|
Tag.__send__(bulk_method, tags)
|
52
52
|
end
|
53
53
|
end
|
@@ -2,13 +2,13 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe ActiveRemote::Persistence do
|
4
4
|
let(:rpc) { Tag.new }
|
5
|
+
let(:response_without_errors) { HashWithIndifferentAccess.new(:errors => []) }
|
5
6
|
|
6
7
|
subject { Tag.new }
|
7
8
|
|
8
9
|
before {
|
9
|
-
rpc.
|
10
|
-
|
11
|
-
Tag.better_stub(:rpc).and_return(rpc)
|
10
|
+
allow(rpc).to receive(:execute).and_return(response_without_errors)
|
11
|
+
allow(Tag).to receive(:rpc).and_return(rpc)
|
12
12
|
}
|
13
13
|
after { allow(Tag).to receive(:rpc).and_call_original }
|
14
14
|
|
@@ -61,7 +61,7 @@ describe ActiveRemote::Persistence do
|
|
61
61
|
let(:error) { Generic::Error.new(:field => 'name', :message => 'Boom!') }
|
62
62
|
let(:response) { Generic::Remote::Tag.new(:errors => [ error ]) }
|
63
63
|
|
64
|
-
before { rpc.
|
64
|
+
before { allow(rpc).to receive(:execute).and_return(response) }
|
65
65
|
|
66
66
|
it "adds the errors to the record" do
|
67
67
|
subject.delete
|
@@ -84,7 +84,7 @@ describe ActiveRemote::Persistence do
|
|
84
84
|
let(:error) { Generic::Error.new(:field => 'name', :message => 'Boom!') }
|
85
85
|
let(:response) { Generic::Remote::Tag.new(:errors => [ error ]) }
|
86
86
|
|
87
|
-
before { rpc.
|
87
|
+
before { allow(rpc).to receive(:execute).and_return(response) }
|
88
88
|
|
89
89
|
it "raises an exception" do
|
90
90
|
expect { subject.delete! }.to raise_error(ActiveRemote::ActiveRemoteError)
|
@@ -109,7 +109,7 @@ describe ActiveRemote::Persistence do
|
|
109
109
|
let(:error) { Generic::Error.new(:field => 'name', :message => 'Boom!') }
|
110
110
|
let(:response) { Generic::Remote::Tag.new(:errors => [ error ]) }
|
111
111
|
|
112
|
-
before { rpc.
|
112
|
+
before { allow(rpc).to receive(:execute).and_return(response) }
|
113
113
|
|
114
114
|
it "adds the errors to the record" do
|
115
115
|
subject.destroy
|
@@ -132,7 +132,7 @@ describe ActiveRemote::Persistence do
|
|
132
132
|
let(:error) { Generic::Error.new(:field => 'name', :message => 'Boom!') }
|
133
133
|
let(:response) { Generic::Remote::Tag.new(:errors => [ error ]) }
|
134
134
|
|
135
|
-
before { rpc.
|
135
|
+
before { allow(rpc).to receive(:execute).and_return(response) }
|
136
136
|
|
137
137
|
it "raises an exception" do
|
138
138
|
expect { subject.destroy! }.to raise_error(ActiveRemote::ActiveRemoteError)
|
@@ -199,6 +199,7 @@ describe ActiveRemote::Persistence do
|
|
199
199
|
|
200
200
|
describe "#save" do
|
201
201
|
it "runs save callbacks" do
|
202
|
+
allow(subject).to receive(:run_callbacks).with(:validation).and_return(true)
|
202
203
|
expect(subject).to receive(:run_callbacks).with(:save)
|
203
204
|
subject.save
|
204
205
|
end
|
@@ -226,14 +227,14 @@ describe ActiveRemote::Persistence do
|
|
226
227
|
|
227
228
|
context "when the record is saved" do
|
228
229
|
it "returns true" do
|
229
|
-
subject.
|
230
|
+
allow(subject).to receive(:has_errors?) { false }
|
230
231
|
expect(subject.save).to be_truthy
|
231
232
|
end
|
232
233
|
end
|
233
234
|
|
234
235
|
context "when the record is not saved" do
|
235
236
|
it "returns false" do
|
236
|
-
subject.
|
237
|
+
allow(subject).to receive(:has_errors?) { true }
|
237
238
|
expect(subject.save).to be_falsey
|
238
239
|
end
|
239
240
|
end
|
@@ -282,6 +283,36 @@ describe ActiveRemote::Persistence do
|
|
282
283
|
end
|
283
284
|
end
|
284
285
|
|
286
|
+
describe "#update_attribute" do
|
287
|
+
let(:tag) { Tag.allocate.instantiate({:guid => "123"}) }
|
288
|
+
|
289
|
+
before { allow(Tag.rpc).to receive(:execute).and_return(HashWithIndifferentAccess.new) }
|
290
|
+
after { allow(Tag.rpc).to receive(:execute).and_call_original }
|
291
|
+
|
292
|
+
it "runs update callbacks" do
|
293
|
+
expect(tag).to receive(:after_update_callback)
|
294
|
+
tag.update_attribute(:name, "foo")
|
295
|
+
end
|
296
|
+
|
297
|
+
it "updates a remote record" do
|
298
|
+
expect(Tag.rpc).to receive(:execute).with(:update, tag.scope_key_hash)
|
299
|
+
tag.update_attribute(:name, "foo")
|
300
|
+
end
|
301
|
+
|
302
|
+
before { allow(subject).to receive(:save) }
|
303
|
+
after { allow(subject).to receive(:save).and_call_original }
|
304
|
+
|
305
|
+
it "assigns new attributes" do
|
306
|
+
expect(subject).to receive(:name=).with("foo")
|
307
|
+
subject.update_attribute(:name, "foo")
|
308
|
+
end
|
309
|
+
|
310
|
+
it "saves the record" do
|
311
|
+
expect(subject).to receive(:save)
|
312
|
+
subject.update_attribute(:name, "foo")
|
313
|
+
end
|
314
|
+
end
|
315
|
+
|
285
316
|
describe "#update_attributes" do
|
286
317
|
let(:attributes) { HashWithIndifferentAccess.new(:name => 'bar') }
|
287
318
|
let(:tag) { Tag.allocate.instantiate({:guid => "123"}) }
|
@@ -9,8 +9,8 @@ describe ActiveRemote::RPC do
|
|
9
9
|
|
10
10
|
let(:rpc) { ::ActiveRemote::RPCAdapters::ProtobufAdapter.new(::Tag.service_class) }
|
11
11
|
|
12
|
-
before { rpc.
|
13
|
-
before { ::Tag.
|
12
|
+
before { allow(rpc).to receive(:execute).and_return(response) }
|
13
|
+
before { allow(::Tag).to receive(:rpc).and_return(rpc) }
|
14
14
|
|
15
15
|
it "calls the given RPC method" do
|
16
16
|
expect(Tag.rpc).to receive(:execute).with(:remote_method, args)
|
@@ -17,7 +17,7 @@ describe ActiveRemote::ScopeKeys do
|
|
17
17
|
end
|
18
18
|
|
19
19
|
describe ".scope_keys" do
|
20
|
-
before { Tag.
|
20
|
+
before { allow(Tag).to receive(:_scope_keys).and_return(_scope_keys) }
|
21
21
|
|
22
22
|
it "combines primary key with _scope_keys" do
|
23
23
|
expect(Tag.scope_keys).to eq(['guid'] + _scope_keys)
|
@@ -33,7 +33,7 @@ describe ActiveRemote::ScopeKeys do
|
|
33
33
|
describe "#scope_key_hash" do
|
34
34
|
let(:scope_key_hash) { { 'guid' => 'TAG-123', 'user_guid' => 'USR-123' } }
|
35
35
|
|
36
|
-
before { tag.
|
36
|
+
before { allow(tag).to receive(:scope_keys).and_return(scope_keys) }
|
37
37
|
|
38
38
|
it "returns a attribute hash of scope_keys" do
|
39
39
|
expect(tag.scope_key_hash).to eq(scope_key_hash)
|
@@ -43,8 +43,8 @@ describe ActiveRemote::Search do
|
|
43
43
|
let(:args) { Hash.new }
|
44
44
|
let(:rpc) { ::ActiveRemote::RPCAdapters::ProtobufAdapter.new(::Tag.service_class) }
|
45
45
|
|
46
|
-
before { rpc.
|
47
|
-
before { ::Tag.
|
46
|
+
before { allow(rpc).to receive(:execute).and_return(response) }
|
47
|
+
before { allow(::Tag).to receive(:rpc).and_return(rpc) }
|
48
48
|
|
49
49
|
it "searches with the given args" do
|
50
50
|
expect(Tag.rpc).to receive(:execute).with(:search, args)
|
@@ -60,7 +60,7 @@ describe ActiveRemote::Search do
|
|
60
60
|
let(:request) { double(:request) }
|
61
61
|
|
62
62
|
it "raises an exception" do
|
63
|
-
expect {
|
63
|
+
expect { Tag.search(request) }.to raise_error(::RuntimeError, /Invalid parameter/)
|
64
64
|
end
|
65
65
|
end
|
66
66
|
end
|
@@ -72,7 +72,7 @@ describe ActiveRemote::Search do
|
|
72
72
|
|
73
73
|
before {
|
74
74
|
allow(rpc).to receive(:execute).and_return(response)
|
75
|
-
Tag.
|
75
|
+
allow(Tag).to receive(:rpc).and_return(rpc)
|
76
76
|
}
|
77
77
|
|
78
78
|
it "runs callbacks" do
|
@@ -92,10 +92,10 @@ describe ActiveRemote::Search do
|
|
92
92
|
|
93
93
|
subject { Tag.new(args) }
|
94
94
|
|
95
|
-
before { Tag.
|
95
|
+
before { allow(Tag).to receive(:find).and_return(Tag.new(attributes)) }
|
96
96
|
|
97
97
|
it "reloads the record" do
|
98
|
-
Tag.
|
98
|
+
expect(Tag).to receive(:find).with(subject.scope_key_hash)
|
99
99
|
subject.reload
|
100
100
|
end
|
101
101
|
|
@@ -39,7 +39,7 @@ describe ActiveRemote::Serialization do
|
|
39
39
|
let(:response) { Generic::Remote::Tag.new(:errors => [ error ]) }
|
40
40
|
|
41
41
|
it "adds errors to the active remote object" do
|
42
|
-
subject.
|
42
|
+
expect(subject).to receive(:add_errors).with(response.errors)
|
43
43
|
subject.add_errors_from_response(response)
|
44
44
|
end
|
45
45
|
end
|
@@ -48,7 +48,7 @@ describe ActiveRemote::Serialization do
|
|
48
48
|
let(:response_without_errors) { double(:response_without_errors) }
|
49
49
|
|
50
50
|
it "does not add errors" do
|
51
|
-
subject.
|
51
|
+
expect(subject).to_not receive(:add_errors)
|
52
52
|
subject.add_errors_from_response(response_without_errors)
|
53
53
|
end
|
54
54
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -17,4 +17,13 @@ require 'support/models'
|
|
17
17
|
|
18
18
|
RSpec.configure do |config|
|
19
19
|
config.include Protobuf::RSpec::Helpers
|
20
|
+
|
21
|
+
# Turn deprecation warnings into errors with full backtrace.
|
22
|
+
config.raise_errors_for_deprecations!
|
23
|
+
|
24
|
+
# Verifies the existance of any stubbed methods, replaces better_receive and better_stub
|
25
|
+
# https://www.relishapp.com/rspec/rspec-mocks/v/3-1/docs/verifying-doubles/partial-doubles
|
26
|
+
config.mock_with :rspec do |mocks|
|
27
|
+
mocks.verify_partial_doubles = true
|
28
|
+
end
|
20
29
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_remote
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Hutchison
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-06-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: active_attr
|
@@ -52,20 +52,6 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '3.0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: better_receive
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ">="
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - ">="
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
69
55
|
- !ruby/object:Gem::Dependency
|
70
56
|
name: rake
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,14 +72,14 @@ dependencies:
|
|
86
72
|
requirements:
|
87
73
|
- - ">="
|
88
74
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
75
|
+
version: 3.3.0
|
90
76
|
type: :development
|
91
77
|
prerelease: false
|
92
78
|
version_requirements: !ruby/object:Gem::Requirement
|
93
79
|
requirements:
|
94
80
|
- - ">="
|
95
81
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
82
|
+
version: 3.3.0
|
97
83
|
- !ruby/object:Gem::Dependency
|
98
84
|
name: rspec-its
|
99
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -114,14 +100,14 @@ dependencies:
|
|
114
100
|
requirements:
|
115
101
|
- - ">="
|
116
102
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
103
|
+
version: 3.1.0
|
118
104
|
type: :development
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
107
|
requirements:
|
122
108
|
- - ">="
|
123
109
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
110
|
+
version: 3.1.0
|
125
111
|
- !ruby/object:Gem::Dependency
|
126
112
|
name: pry
|
127
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -142,14 +128,14 @@ dependencies:
|
|
142
128
|
requirements:
|
143
129
|
- - ">="
|
144
130
|
- !ruby/object:Gem::Version
|
145
|
-
version:
|
131
|
+
version: 1.1.2
|
146
132
|
type: :development
|
147
133
|
prerelease: false
|
148
134
|
version_requirements: !ruby/object:Gem::Requirement
|
149
135
|
requirements:
|
150
136
|
- - ">="
|
151
137
|
- !ruby/object:Gem::Version
|
152
|
-
version:
|
138
|
+
version: 1.1.2
|
153
139
|
- !ruby/object:Gem::Dependency
|
154
140
|
name: simplecov
|
155
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -264,7 +250,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
264
250
|
version: '0'
|
265
251
|
requirements: []
|
266
252
|
rubyforge_project:
|
267
|
-
rubygems_version: 2.
|
253
|
+
rubygems_version: 2.5.1
|
268
254
|
signing_key:
|
269
255
|
specification_version: 4
|
270
256
|
summary: Active Record for your platform
|