jeckle 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: be467f303f461477c44a2ff12a334918e42cf833
4
- data.tar.gz: 73c1eca8358f96530eabf65c5398898c3f516e18
3
+ metadata.gz: cc145a2c57d49e16a1eb949572d0e5d5b332e84c
4
+ data.tar.gz: d9777c608e3647a7a4280c9d2b6a9c7accb0156e
5
5
  SHA512:
6
- metadata.gz: 69e64c0210fde8e8b577ad46b00f0bbca449fb234940bb5236f40838d7fbd9912fca85776328a9d126b1d495f736b191d04468b62a9871dd02ba8613de9d1ac2
7
- data.tar.gz: 945e10b3420ba0b94f59358eeab47ac976bcf07eae78d1c6c699f5e634ecbfc2856b92f2c74bdef58f8c1b3c26c00280319124be0f95d631b8261f5fb1820392
6
+ metadata.gz: 0ce7714c1ba50c9feafa7327766f9eb8d8e5d515c02e9928519eeb6f9b8f7f60e272d68bc0b7ef6080a31218c1a3b4f94f647fa04b7d4c53d8d270c1160dc4c7
7
+ data.tar.gz: d5aa1c13218e74e196d08b9236e2f2b5c35a232aca955c8d0aabcba610adc823722f33fc240b8f1b4dc5fabc42989f2ff23d79ac66b9c2989a15904c8d959824
@@ -36,9 +36,10 @@ module Jeckle
36
36
  end
37
37
 
38
38
  def search(params = {})
39
- collection = run_request(resource_name, params).response.body || []
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 = {})
@@ -1,3 +1,3 @@
1
1
  module Jeckle
2
- VERSION = '0.2.0'
2
+ VERSION = '0.2.1'
3
3
  end
@@ -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(:fake_request) { OpenStruct.new response: OpenStruct.new(body: [{ id: 1001 }, { id: 1002 }]) }
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.0
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-09 00:00:00.000000000 Z
12
+ date: 2014-10-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activemodel