jeckle 0.2.0 → 0.2.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/lib/jeckle/resource.rb +3 -2
- data/lib/jeckle/version.rb +1 -1
- data/spec/jeckle/resource_spec.rb +19 -2
- 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: cc145a2c57d49e16a1eb949572d0e5d5b332e84c
|
4
|
+
data.tar.gz: d9777c608e3647a7a4280c9d2b6a9c7accb0156e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0ce7714c1ba50c9feafa7327766f9eb8d8e5d515c02e9928519eeb6f9b8f7f60e272d68bc0b7ef6080a31218c1a3b4f94f647fa04b7d4c53d8d270c1160dc4c7
|
7
|
+
data.tar.gz: d5aa1c13218e74e196d08b9236e2f2b5c35a232aca955c8d0aabcba610adc823722f33fc240b8f1b4dc5fabc42989f2ff23d79ac66b9c2989a15904c8d959824
|
data/lib/jeckle/resource.rb
CHANGED
@@ -36,9 +36,10 @@ module Jeckle
|
|
36
36
|
end
|
37
37
|
|
38
38
|
def search(params = {})
|
39
|
-
|
39
|
+
response = run_request(resource_name, params).response.body || []
|
40
|
+
collection = response.kind_of?(Array) ? response : response[resource_name]
|
40
41
|
|
41
|
-
collection.collect { |attrs| new attrs }
|
42
|
+
Array(collection).collect { |attrs| new attrs }
|
42
43
|
end
|
43
44
|
|
44
45
|
def run_request(endpoint, options = {})
|
data/lib/jeckle/version.rb
CHANGED
@@ -91,10 +91,12 @@ RSpec.describe Jeckle::Resource do
|
|
91
91
|
end
|
92
92
|
|
93
93
|
describe '.search' do
|
94
|
+
let(:fake_request) { OpenStruct.new response: OpenStruct.new(body: body) }
|
95
|
+
|
94
96
|
let(:query) { { name: 'cocada' } }
|
95
97
|
|
96
|
-
context 'when there are results' do
|
97
|
-
let(:
|
98
|
+
context 'when there are results WITHOUT root node' do
|
99
|
+
let(:body) { [{ id: 1001 }, { id: 1002 }] }
|
98
100
|
|
99
101
|
it 'calls default API connection with GET and search params' do
|
100
102
|
expect(Jeckle::Request).to receive(:run)
|
@@ -113,6 +115,21 @@ RSpec.describe Jeckle::Resource do
|
|
113
115
|
end
|
114
116
|
end
|
115
117
|
|
118
|
+
context 'when there are results WITH root node' do
|
119
|
+
let(:body) do
|
120
|
+
{ 'fake_resources' => [{ id: 1001 }, { id: 1002 } ] }
|
121
|
+
end
|
122
|
+
|
123
|
+
it 'returns an Array of resources' do
|
124
|
+
allow(Jeckle::Request).to receive(:run).and_return(fake_request)
|
125
|
+
|
126
|
+
expect(FakeResource.search query).to match [
|
127
|
+
an_instance_of(FakeResource),
|
128
|
+
an_instance_of(FakeResource)
|
129
|
+
]
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
116
133
|
context 'when there are no results' do
|
117
134
|
let(:fake_request) { OpenStruct.new response: OpenStruct.new(body: nil) }
|
118
135
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jeckle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tomas D'Stefano
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-10-
|
12
|
+
date: 2014-10-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activemodel
|