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 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