lhs 6.6.1 → 6.6.2
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/README.md +23 -10
- data/lib/lhs/item.rb +1 -1
- data/lib/lhs/version.rb +1 -1
- data/spec/collection/delegate_spec.rb +4 -4
- data/spec/collection/enumerable_spec.rb +4 -4
- data/spec/collection/respond_to_spec.rb +4 -4
- data/spec/data/collection_spec.rb +2 -2
- data/spec/item/respond_to_spec.rb +2 -2
- data/spec/item/setter_spec.rb +6 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 28bbd84604d97fb4b2832870a1af4e19c8a4dd7b
|
4
|
+
data.tar.gz: cee59479f3b13012abaca1454f2bb5a09c884768
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2d42b4b4fe655bb825b3877e19f13f6f431207daa6cadd4484de828516de2b4b546314a363ec0c08b0896e6dc4d437fd3966c8898143f128077f92d906f4da26
|
7
|
+
data.tar.gz: f85c70878edb8a4d13d7915e261c71bcf1c3601679615cb9972e1279898fd9aaa315014893a8493b94ee81e7157c0d30a93a898fe5d01adc906cd5568bceb11f
|
data/README.md
CHANGED
@@ -297,31 +297,44 @@ Sometimes it is the case that you want to have your custom getters and setters a
|
|
297
297
|
The initializer will now use custom setter if one is defined:
|
298
298
|
|
299
299
|
```ruby
|
300
|
-
|
301
|
-
|
302
|
-
|
300
|
+
|
301
|
+
module RatingsConversions
|
302
|
+
def ratings=(values)
|
303
|
+
super(
|
304
|
+
values.map { |k, v| { name: k, value: v } }
|
305
|
+
)
|
303
306
|
end
|
304
307
|
end
|
305
308
|
|
306
|
-
|
307
|
-
|
309
|
+
class Record < LHS::Record
|
310
|
+
prepend RatingsConversions
|
311
|
+
end
|
312
|
+
|
313
|
+
record = Record.new(ratings: { quality: 3 })
|
314
|
+
record.ratings # [{ :name=>:quality, :value=>3 }]
|
308
315
|
|
309
316
|
```
|
310
317
|
|
311
318
|
If you have an accompanying getter the whole data manipulation would be internal only.
|
312
319
|
|
313
320
|
```ruby
|
314
|
-
|
315
|
-
def ratings=(
|
316
|
-
|
321
|
+
module RatingsConversions
|
322
|
+
def ratings=(values)
|
323
|
+
super(
|
324
|
+
values.map { |k, v| { name: k, value: v } }
|
325
|
+
)
|
317
326
|
end
|
318
327
|
|
319
328
|
def ratings
|
320
|
-
|
329
|
+
super.map { |r| [r[:name], r[:value]] }]
|
321
330
|
end
|
322
331
|
end
|
323
332
|
|
324
|
-
|
333
|
+
class Record < LHS::Record
|
334
|
+
prepend RatingsConversions
|
335
|
+
end
|
336
|
+
|
337
|
+
record = Record.new(ratings: { quality: 3 }) # [{ :name=>:quality, :value=>3 }]
|
325
338
|
record.ratings # {:quality=>3}
|
326
339
|
|
327
340
|
```
|
data/lib/lhs/item.rb
CHANGED
@@ -33,7 +33,7 @@ class LHS::Item < LHS::Proxy
|
|
33
33
|
value = _data._raw[name.to_s]
|
34
34
|
if value.nil? && _data._raw.present?
|
35
35
|
value = _data._raw[name.to_sym]
|
36
|
-
value
|
36
|
+
value = _data._raw[name.to_s.classify.to_sym] if value.nil?
|
37
37
|
end
|
38
38
|
if value.is_a?(Hash)
|
39
39
|
handle_hash(value)
|
data/lib/lhs/version.rb
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
require 'rails_helper'
|
2
2
|
|
3
3
|
describe LHS::Collection do
|
4
|
-
let(:data)
|
4
|
+
let(:data) do
|
5
5
|
['ROLE_USER', 'ROLE_LOCALCH_ACCOUNT']
|
6
|
-
|
6
|
+
end
|
7
7
|
|
8
|
-
let(:collection)
|
8
|
+
let(:collection) do
|
9
9
|
LHS::Collection.new(LHS::Data.new(data))
|
10
|
-
|
10
|
+
end
|
11
11
|
|
12
12
|
context 'delegates methods to raw' do
|
13
13
|
%w(present? blank? empty?).each do |method|
|
@@ -1,13 +1,13 @@
|
|
1
1
|
require 'rails_helper'
|
2
2
|
|
3
3
|
describe LHS::Collection do
|
4
|
-
let(:data)
|
4
|
+
let(:data) do
|
5
5
|
[1, 2, 3]
|
6
|
-
|
6
|
+
end
|
7
7
|
|
8
|
-
let(:collection)
|
8
|
+
let(:collection) do
|
9
9
|
LHS::Collection.new(LHS::Data.new(data))
|
10
|
-
|
10
|
+
end
|
11
11
|
|
12
12
|
context 'enumerable' do
|
13
13
|
it 'works with map' do
|
@@ -1,13 +1,13 @@
|
|
1
1
|
require 'rails_helper'
|
2
2
|
|
3
3
|
describe LHS::Collection do
|
4
|
-
let(:data)
|
4
|
+
let(:data) do
|
5
5
|
['ROLE_USER', 'ROLE_LOCALCH_ACCOUNT']
|
6
|
-
|
6
|
+
end
|
7
7
|
|
8
|
-
let(:collection)
|
8
|
+
let(:collection) do
|
9
9
|
LHS::Data.new(LHS::Data.new(data))
|
10
|
-
|
10
|
+
end
|
11
11
|
|
12
12
|
context '#respond_to?' do
|
13
13
|
# In this case raw collection is an Array implementing first
|
@@ -17,13 +17,13 @@ describe LHS::Data do
|
|
17
17
|
|
18
18
|
context 'collections' do
|
19
19
|
it 'forwards calls to the collection' do
|
20
|
-
expect(data.count).to be_kind_of
|
20
|
+
expect(data.count).to be_kind_of Integer
|
21
21
|
expect(data[0]).to be_kind_of LHS::Data
|
22
22
|
expect(data.sample).to be_kind_of LHS::Data
|
23
23
|
end
|
24
24
|
|
25
25
|
it 'provides a total method to get the number of total records' do
|
26
|
-
expect(data.total).to be_kind_of
|
26
|
+
expect(data.total).to be_kind_of Integer
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
data/spec/item/setter_spec.rb
CHANGED
@@ -32,5 +32,11 @@ describe LHS::Item do
|
|
32
32
|
expect((item.name = nil)).to eq nil
|
33
33
|
expect(item.name).to eq nil
|
34
34
|
end
|
35
|
+
|
36
|
+
it 'sets things to false' do
|
37
|
+
item.recommended = true
|
38
|
+
expect((item.recommended = false)).to eq false
|
39
|
+
expect(item.recommended).to eq false
|
40
|
+
end
|
35
41
|
end
|
36
42
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lhs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.6.
|
4
|
+
version: 6.6.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- https://github.com/local-ch/lhs/graphs/contributors
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-09-
|
11
|
+
date: 2016-09-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: lhc
|
@@ -356,7 +356,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
356
356
|
requirements:
|
357
357
|
- Ruby >= 2.0.0
|
358
358
|
rubyforge_project:
|
359
|
-
rubygems_version: 2.
|
359
|
+
rubygems_version: 2.5.1
|
360
360
|
signing_key:
|
361
361
|
specification_version: 4
|
362
362
|
summary: Rails gem providing an easy, active-record-like interface for http json services
|