lhs 3.0.3 → 3.0.4
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/.rubocop.yml +6 -0
- data/lib/lhs/record.rb +4 -3
- data/lib/lhs/version.rb +1 -1
- data/spec/collection/delegate_spec.rb +1 -1
- data/spec/collection/enumerable_spec.rb +1 -1
- data/spec/collection/respond_to_spec.rb +1 -1
- data/spec/data/collection_spec.rb +4 -4
- data/spec/data/item_spec.rb +1 -1
- data/spec/data/merge_spec.rb +2 -7
- data/spec/data/raw_spec.rb +3 -3
- data/spec/data/respond_to_spec.rb +2 -2
- data/spec/data/root_spec.rb +3 -3
- data/spec/data/select_spec.rb +1 -1
- data/spec/data/to_json_spec.rb +1 -1
- data/spec/endpoint/for_url_spec.rb +3 -3
- data/spec/item/respond_to_spec.rb +1 -1
- data/spec/item/update_spec.rb +1 -1
- data/spec/record/all_spec.rb +3 -3
- data/spec/record/find_in_batches_spec.rb +2 -2
- data/spec/record/select_spec.rb +15 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 25c2f31fa82157c1d9a3b6afebaf02f5d71b926a
|
4
|
+
data.tar.gz: d464725b1cc5882bc182d460532fe26b6add315d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d3cce7225ad9cbd4e615e35af9362096c760dfb9603ed24ed4c207ecbaba98c7620f5efd02c5d41a5446d6ddc1d1b3d0d7048a10984a56aeb08650e9f2108250
|
7
|
+
data.tar.gz: 58446953d05a44c0d8e3af2d5c2be56725f22440aa6bf6d21731522bd4bbd849469e1964af675a8ff324dd880405e562e2f3fe347a652b44e44f4ce1f7f8604b
|
data/.rubocop.yml
CHANGED
data/lib/lhs/record.rb
CHANGED
@@ -14,6 +14,8 @@ class LHS::Record
|
|
14
14
|
include Request
|
15
15
|
include Where
|
16
16
|
|
17
|
+
delegate :_proxy, to: :_data
|
18
|
+
|
17
19
|
def initialize(data = nil)
|
18
20
|
data = LHS::Data.new({}, nil, self.class) unless data
|
19
21
|
data = LHS::Data.new(data, nil, self.class) unless data.is_a?(LHS::Data)
|
@@ -40,11 +42,10 @@ class LHS::Record
|
|
40
42
|
protected
|
41
43
|
|
42
44
|
def method_missing(name, *args, &block)
|
43
|
-
_data.send(name, *args, &block)
|
45
|
+
_data._proxy.send(name, *args, &block)
|
44
46
|
end
|
45
47
|
|
46
48
|
def respond_to_missing?(name, include_all = false)
|
47
|
-
|
48
|
-
_data._proxy.respond_to?(name, include_all)
|
49
|
+
_data.respond_to_missing?(name, include_all)
|
49
50
|
end
|
50
51
|
end
|
data/lib/lhs/version.rb
CHANGED
@@ -6,14 +6,14 @@ describe LHS::Data do
|
|
6
6
|
end
|
7
7
|
|
8
8
|
let(:data) do
|
9
|
-
|
9
|
+
LHS::Data.new(json)
|
10
10
|
end
|
11
11
|
|
12
12
|
context 'collections' do
|
13
13
|
it 'forwards calls to the collection' do
|
14
14
|
expect(data.count).to be_kind_of Fixnum
|
15
|
-
expect(data[0]).to be_kind_of
|
16
|
-
expect(data.sample).to be_kind_of
|
15
|
+
expect(data[0]).to be_kind_of LHS::Data
|
16
|
+
expect(data.sample).to be_kind_of LHS::Data
|
17
17
|
end
|
18
18
|
|
19
19
|
it 'provides a total method to get the number of total records' do
|
@@ -23,7 +23,7 @@ describe LHS::Data do
|
|
23
23
|
|
24
24
|
context 'collections from arrays' do
|
25
25
|
let(:data) do
|
26
|
-
|
26
|
+
LHS::Data.new([1, 2, 3, 4])
|
27
27
|
end
|
28
28
|
|
29
29
|
it 'uses collection as proxy for arrays' do
|
data/spec/data/item_spec.rb
CHANGED
data/spec/data/merge_spec.rb
CHANGED
@@ -9,16 +9,11 @@ describe LHS::Data do
|
|
9
9
|
end
|
10
10
|
|
11
11
|
let(:data) do
|
12
|
-
|
13
|
-
href: 'http://www.local.ch/v2/stuff'
|
14
|
-
}, nil, Record)
|
12
|
+
LHS::Data.new({ href: 'http://www.local.ch/v2/stuff' }, nil, Record)
|
15
13
|
end
|
16
14
|
|
17
15
|
let(:loaded_data) do
|
18
|
-
|
19
|
-
href: 'http://www.local.ch/v2/stuff',
|
20
|
-
id: '123123123'
|
21
|
-
}, nil, Record)
|
16
|
+
LHS::Data.new({ href: 'http://www.local.ch/v2/stuff', id: '123123123' }, nil, Record)
|
22
17
|
end
|
23
18
|
|
24
19
|
context 'merging' do
|
data/spec/data/raw_spec.rb
CHANGED
@@ -10,7 +10,7 @@ describe LHS::Data do
|
|
10
10
|
end
|
11
11
|
|
12
12
|
let(:data_from_raw) do
|
13
|
-
|
13
|
+
LHS::Data.new(
|
14
14
|
href: 'http://www.local.ch/v2/stuff',
|
15
15
|
id: '123123123'
|
16
16
|
)
|
@@ -18,8 +18,8 @@ describe LHS::Data do
|
|
18
18
|
|
19
19
|
let(:data_from_item) do
|
20
20
|
raw = { href: 'http://www.local.ch/v2/stuff' }
|
21
|
-
item = LHS::Item.new(
|
22
|
-
|
21
|
+
item = LHS::Item.new(LHS::Data.new(raw))
|
22
|
+
LHS::Data.new(item)
|
23
23
|
end
|
24
24
|
|
25
25
|
context 'raw' do
|
@@ -9,14 +9,14 @@ describe LHS::Data do
|
|
9
9
|
|
10
10
|
context '#respond_to?' do
|
11
11
|
it 'it is true for mappings that are defined' do
|
12
|
-
data =
|
12
|
+
data = LHS::Data.new({ 'campaign' => { 'id' => 123 } }, nil, Record)
|
13
13
|
|
14
14
|
expect(data.respond_to?(:test_mapping?)).to be(true)
|
15
15
|
end
|
16
16
|
|
17
17
|
# proxy for this example is LHC::Collection which implements total
|
18
18
|
it 'it is true for calls forwarded to proxy' do
|
19
|
-
data =
|
19
|
+
data = LHS::Data.new({ 'items' => [{ 'campaign' => { 'id' => 123 } }] }, nil, Record)
|
20
20
|
|
21
21
|
expect(data.respond_to?(:total)).to be(true)
|
22
22
|
end
|
data/spec/data/root_spec.rb
CHANGED
@@ -11,12 +11,12 @@ describe LHS::Data do
|
|
11
11
|
|
12
12
|
context 'root' do
|
13
13
|
it 'is navigateable from nested data' do
|
14
|
-
root =
|
14
|
+
root = LHS::Data.new({ 'items' => [{ 'campaign' => { 'id' => 123 } }] }, nil, Record)
|
15
15
|
child = root.first
|
16
16
|
leafe = child.campaign
|
17
17
|
expect(leafe._root).to eq root
|
18
|
-
expect(leafe._parent).to be_kind_of
|
19
|
-
expect(leafe._parent._parent).to be_kind_of
|
18
|
+
expect(leafe._parent).to be_kind_of LHS::Data
|
19
|
+
expect(leafe._parent._parent).to be_kind_of LHS::Data
|
20
20
|
expect(leafe._parent._parent).to eq root
|
21
21
|
end
|
22
22
|
end
|
data/spec/data/select_spec.rb
CHANGED
data/spec/data/to_json_spec.rb
CHANGED
@@ -12,13 +12,13 @@ describe LHS::Endpoint do
|
|
12
12
|
|
13
13
|
it 'provides the endpoint for a given url' do
|
14
14
|
expect(
|
15
|
-
|
15
|
+
LHS::Endpoint.for_url('http://local.ch/v2/entries/123/content-ads/456/feedbacks').url
|
16
16
|
).to eq ':datastore/entries/:entry_id/content-ads/:campaign_id/feedbacks'
|
17
17
|
expect(
|
18
|
-
|
18
|
+
LHS::Endpoint.for_url('http://local.ch/123/feedbacks').url
|
19
19
|
).to eq ':datastore/:campaign_id/feedbacks'
|
20
20
|
expect(
|
21
|
-
|
21
|
+
LHS::Endpoint.for_url('http://local.ch/feedbacks').url
|
22
22
|
).to eq ':datastore/feedbacks'
|
23
23
|
end
|
24
24
|
end
|
data/spec/item/update_spec.rb
CHANGED
@@ -46,7 +46,7 @@ describe LHS::Item do
|
|
46
46
|
.to_return(status: 400, body: item._raw.merge(likes: 'Banana').to_json)
|
47
47
|
item.update(name: 'Andrea')
|
48
48
|
expect(item.name).to eq 'Andrea'
|
49
|
-
expect(item.likes).
|
49
|
+
expect(item.likes).not_to eq 'Banana'
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
data/spec/record/all_spec.rb
CHANGED
@@ -21,7 +21,7 @@ describe LHS::Collection do
|
|
21
21
|
.to_return(status: 200, body: { items: (201..300).to_a, total: 300, limit: 100, offset: 201 }.to_json)
|
22
22
|
all = Record.all
|
23
23
|
expect(all).to be_kind_of Record
|
24
|
-
expect(all._proxy).to be_kind_of
|
24
|
+
expect(all._data._proxy).to be_kind_of LHS::Collection
|
25
25
|
expect(all.count).to eq 300
|
26
26
|
expect(all.last).to eq 300
|
27
27
|
end
|
@@ -35,7 +35,7 @@ describe LHS::Collection do
|
|
35
35
|
.to_return(status: 200, body: { items: (201..300).to_a, total: 300, offset: 201 }.to_json)
|
36
36
|
all = Record.all
|
37
37
|
expect(all).to be_kind_of Record
|
38
|
-
expect(all._proxy).to be_kind_of
|
38
|
+
expect(all._proxy).to be_kind_of LHS::Collection
|
39
39
|
expect(all.count).to eq 300
|
40
40
|
expect(all.last).to eq 300
|
41
41
|
end
|
@@ -45,7 +45,7 @@ describe LHS::Collection do
|
|
45
45
|
.to_return(status: 200, body: { items: [], total: 300, offset: 0 }.to_json)
|
46
46
|
all = Record.all
|
47
47
|
expect(all).to be_kind_of Record
|
48
|
-
expect(all._proxy).to be_kind_of
|
48
|
+
expect(all._proxy).to be_kind_of LHS::Collection
|
49
49
|
expect(all.count).to eq 0
|
50
50
|
end
|
51
51
|
end
|
@@ -36,7 +36,7 @@ describe LHS::Collection do
|
|
36
36
|
Record.find_in_batches do |records|
|
37
37
|
count += records.count
|
38
38
|
expect(records).to be_kind_of Record
|
39
|
-
expect(records._proxy).to be_kind_of
|
39
|
+
expect(records._proxy).to be_kind_of LHS::Collection
|
40
40
|
end
|
41
41
|
expect(count).to eq total
|
42
42
|
end
|
@@ -51,7 +51,7 @@ describe LHS::Collection do
|
|
51
51
|
Record.find_in_batches(batch_size: 230) do |records|
|
52
52
|
count += records.count
|
53
53
|
expect(records).to be_kind_of Record
|
54
|
-
expect(records._proxy).to be_kind_of
|
54
|
+
expect(records._proxy).to be_kind_of LHS::Collection
|
55
55
|
end
|
56
56
|
expect(count).to eq total
|
57
57
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
describe LHS::Record do
|
4
|
+
let(:record) do
|
5
|
+
LHS::Record.new(LHS::Data.new(['cat', 'dog']))
|
6
|
+
end
|
7
|
+
|
8
|
+
context 'select' do
|
9
|
+
it 'works with select' do
|
10
|
+
expect(
|
11
|
+
record.select { |x| x }.join
|
12
|
+
).to eq 'catdog'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
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: 3.0.
|
4
|
+
version: 3.0.4
|
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-02-
|
11
|
+
date: 2016-02-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: lhc
|
@@ -258,6 +258,7 @@ files:
|
|
258
258
|
- spec/record/model_name_spec.rb
|
259
259
|
- spec/record/new_spec.rb
|
260
260
|
- spec/record/request_spec.rb
|
261
|
+
- spec/record/select_spec.rb
|
261
262
|
- spec/record/to_json_spec.rb
|
262
263
|
- spec/record/where_spec.rb
|
263
264
|
- spec/spec_helper.rb
|
@@ -376,6 +377,7 @@ test_files:
|
|
376
377
|
- spec/record/model_name_spec.rb
|
377
378
|
- spec/record/new_spec.rb
|
378
379
|
- spec/record/request_spec.rb
|
380
|
+
- spec/record/select_spec.rb
|
379
381
|
- spec/record/to_json_spec.rb
|
380
382
|
- spec/record/where_spec.rb
|
381
383
|
- spec/spec_helper.rb
|