dynamini 2.2.4 → 2.2.5
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/Gemfile.lock +6 -9
- data/dynamini.gemspec +1 -1
- data/lib/dynamini/base.rb +1 -2
- data/spec/dynamini/base_spec.rb +31 -0
- data/spec/dynamini/type_handler_spec.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cc2cb03535d576707c7d063479495420f147402c
|
4
|
+
data.tar.gz: 9a13209c5dd606f18be36a0a6b8178cee4a95309
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ed8549da709ccd8347fa152729a07ad9889ae33afbdfaa7e8d0162d791a869bbe660c78185eb332eb70ec3c784deda8d0a2d4559848ba24e742b7bb53dbfdabb
|
7
|
+
data.tar.gz: 054b7037256a8e9c8af8c7e8fbe12de5b6f99df929ace57361c731ec07c622bfe49bded36cf43db93b629bd18896455a7ab520bf7711841fe1def54c1cdef51d
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
dynamini (2.2.
|
4
|
+
dynamini (2.2.5)
|
5
5
|
activemodel (>= 3, < 5.0)
|
6
6
|
aws-sdk (~> 2)
|
7
7
|
|
@@ -17,12 +17,12 @@ GEM
|
|
17
17
|
minitest (~> 5.1)
|
18
18
|
thread_safe (~> 0.3, >= 0.3.4)
|
19
19
|
tzinfo (~> 1.1)
|
20
|
-
aws-sdk (2.2.
|
21
|
-
aws-sdk-resources (= 2.2.
|
22
|
-
aws-sdk-core (2.2.
|
20
|
+
aws-sdk (2.2.22)
|
21
|
+
aws-sdk-resources (= 2.2.22)
|
22
|
+
aws-sdk-core (2.2.22)
|
23
23
|
jmespath (~> 1.0)
|
24
|
-
aws-sdk-resources (2.2.
|
25
|
-
aws-sdk-core (= 2.2.
|
24
|
+
aws-sdk-resources (2.2.22)
|
25
|
+
aws-sdk-core (= 2.2.22)
|
26
26
|
builder (3.2.2)
|
27
27
|
coderay (1.1.0)
|
28
28
|
diff-lcs (1.2.5)
|
@@ -99,6 +99,3 @@ DEPENDENCIES
|
|
99
99
|
guard-shell
|
100
100
|
pry (~> 0)
|
101
101
|
rspec (~> 3)
|
102
|
-
|
103
|
-
BUNDLED WITH
|
104
|
-
1.11.2
|
data/dynamini.gemspec
CHANGED
data/lib/dynamini/base.rb
CHANGED
@@ -17,7 +17,6 @@ module Dynamini
|
|
17
17
|
include Dynamini::Increment
|
18
18
|
include Dynamini::TypeHandler
|
19
19
|
|
20
|
-
|
21
20
|
attr_reader :attributes
|
22
21
|
class_attribute :handles
|
23
22
|
|
@@ -175,7 +174,7 @@ module Dynamini
|
|
175
174
|
def attribute_updates
|
176
175
|
changes.reduce({}) do |updates, (key, value)|
|
177
176
|
current_value = value[1]
|
178
|
-
updates[key] = {value: current_value, action: 'PUT'}
|
177
|
+
updates[key] = { value: current_value, action: 'PUT' }
|
179
178
|
updates
|
180
179
|
end
|
181
180
|
end
|
data/spec/dynamini/base_spec.rb
CHANGED
@@ -200,6 +200,24 @@ describe Dynamini::Base do
|
|
200
200
|
model.save
|
201
201
|
end
|
202
202
|
end
|
203
|
+
|
204
|
+
context 'when an empty array is submitted' do
|
205
|
+
it 'should submit the array' do
|
206
|
+
expect(model.class.client).to receive(:update_item).with(
|
207
|
+
table_name: 'bases',
|
208
|
+
key: {id: model_attributes[:id]},
|
209
|
+
attribute_updates: hash_including(
|
210
|
+
"foo" => {
|
211
|
+
value: [],
|
212
|
+
action: 'PUT'
|
213
|
+
}
|
214
|
+
)
|
215
|
+
)
|
216
|
+
model.foo = []
|
217
|
+
model.bar = 4
|
218
|
+
model.save
|
219
|
+
end
|
220
|
+
end
|
203
221
|
end
|
204
222
|
|
205
223
|
context 'when failing validation' do
|
@@ -459,6 +477,19 @@ describe Dynamini::Base do
|
|
459
477
|
expect(model.foo).to eq('bar')
|
460
478
|
end
|
461
479
|
end
|
480
|
+
|
481
|
+
context 'arrays' do
|
482
|
+
it 'should write to the attribute and switch type freely' do
|
483
|
+
model.foo = ['bar', 'baz']
|
484
|
+
expect(model.foo).to eq(['bar', 'baz'])
|
485
|
+
model.foo = ['quux']
|
486
|
+
expect(model.foo).to eq(['quux'])
|
487
|
+
model.foo = 'zort'
|
488
|
+
expect(model.foo).to eq('zort')
|
489
|
+
model.foo = []
|
490
|
+
expect(model.foo).to eq([])
|
491
|
+
end
|
492
|
+
end
|
462
493
|
end
|
463
494
|
|
464
495
|
describe '#key' do
|
@@ -16,7 +16,7 @@ describe Dynamini::TypeHandler do
|
|
16
16
|
object = HandledClass.new
|
17
17
|
expect(object.price).to eq(9)
|
18
18
|
end
|
19
|
-
it 'should return an array with
|
19
|
+
it 'should return an array with formatted items if handled' do
|
20
20
|
object = HandledClass.new(price: ["1", "2"])
|
21
21
|
expect(object.price).to eq([1, 2])
|
22
22
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dynamini
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Greg Ward
|
@@ -15,7 +15,7 @@ authors:
|
|
15
15
|
autorequire:
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
|
-
date: 2016-03-
|
18
|
+
date: 2016-03-23 00:00:00.000000000 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: activemodel
|