hyperclient 0.8.2 → 0.8.3
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_todo.yml +1 -1
- data/.travis.yml +6 -1
- data/CHANGELOG.md +4 -0
- data/Rakefile +0 -2
- data/features/api_navigation.feature +5 -0
- data/features/steps/api_navigation.rb +8 -0
- data/features/support/api.rb +2 -0
- data/features/support/fixtures.rb +1 -0
- data/lib/hyperclient/entry_point.rb +2 -0
- data/lib/hyperclient/version.rb +1 -1
- data/test/hyperclient/entry_point_test.rb +6 -0
- metadata +4 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bed16cb9c2392b30c87a860e6ec535b6d3fc7be8
|
4
|
+
data.tar.gz: 5ac012a05c90ba7972bb4bf438a02059fb42ca49
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3a71056f91a8b0748fe4a381cec303d48f452090a05a4bacad87f1f36c51a302e85876e91a6241e7030b1e8f3e6fdd99beb7cb79796b88f96f84cd8c453c51c5
|
7
|
+
data.tar.gz: 2f8cf4720cd00317c958a4947b41bb3562f8df4727141f5575ebf37ba3c28d8da27a7517b88879f2baceb016234d39ec8d4858f2aad3c8d599c194147118fa26
|
data/.rubocop_todo.yml
CHANGED
data/.travis.yml
CHANGED
@@ -10,13 +10,18 @@ matrix:
|
|
10
10
|
- rvm: 2.3.1
|
11
11
|
- rvm: 2.3.0
|
12
12
|
- rvm: 2.2.5
|
13
|
+
- rvm: 2.4.0
|
13
14
|
- rvm: rbx-2
|
14
15
|
- rvm: ruby-head
|
15
16
|
- rvm: jruby-head
|
16
|
-
- rvm: jruby-9.1.
|
17
|
+
- rvm: jruby-9.1.7.0
|
17
18
|
allow_failures:
|
18
19
|
- rvm: ruby-head
|
19
20
|
- rvm: jruby-head
|
20
21
|
- rvm: rbx-2
|
21
22
|
|
23
|
+
before_install:
|
24
|
+
- gem update --system
|
25
|
+
- gem install bundler
|
26
|
+
|
22
27
|
bundler_args: --without development
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
### 0.8.3 (March 30, 2017)
|
2
|
+
|
3
|
+
* [#115](https://github.com/codegram/hyperclient/pull/115): Fix dropped values from queries by using FlatParamsEncoder - [@ivoanjo](https://github.com/ivoanjo).
|
4
|
+
|
1
5
|
### 0.8.2 (December 31, 2016)
|
2
6
|
|
3
7
|
#### This version is no longer tested with Ruby < 2.2.
|
data/Rakefile
CHANGED
@@ -12,6 +12,11 @@ Feature: API navigation
|
|
12
12
|
When I search for a post with a templated link
|
13
13
|
Then the API should receive the request with all the params
|
14
14
|
|
15
|
+
Scenario: Templated links with multiple values
|
16
|
+
Given I connect to the API
|
17
|
+
When I search for posts by tag with a templated link
|
18
|
+
Then the API should receive the request for posts by tag with all the params
|
19
|
+
|
15
20
|
Scenario: Attributes
|
16
21
|
Given I connect to the API
|
17
22
|
When I load a single post
|
@@ -17,6 +17,14 @@ class Spinach::Features::ApiNavigation < Spinach::FeatureSteps
|
|
17
17
|
assert_requested :get, 'http://api.example.org/search?q=something'
|
18
18
|
end
|
19
19
|
|
20
|
+
step 'I search for posts by tag with a templated link' do
|
21
|
+
api._links.tagged._expand(tags: %w(foo bar))._resource
|
22
|
+
end
|
23
|
+
|
24
|
+
step 'the API should receive the request for posts by tag with all the params' do
|
25
|
+
assert_requested :get, 'http://api.example.org/search?tags=foo&tags=bar'
|
26
|
+
end
|
27
|
+
|
20
28
|
step 'I load a single post' do
|
21
29
|
@post = api._links.posts._links.last_post
|
22
30
|
end
|
data/features/support/api.rb
CHANGED
@@ -5,6 +5,8 @@ module API
|
|
5
5
|
include Spinach::Fixtures
|
6
6
|
|
7
7
|
before do
|
8
|
+
WebMock::Config.instance.query_values_notation = :flat_array
|
9
|
+
|
8
10
|
stub_request(:any, %r{api.example.org*}).to_return(body: root_response, headers: { 'Content-Type' => 'application/hal+json' })
|
9
11
|
stub_request(:get, 'api.example.org/posts').to_return(body: posts_response, headers: { 'Content-Type' => 'application/hal+json' })
|
10
12
|
stub_request(:get, 'api.example.org/posts/1').to_return(body: post_response, headers: { 'Content-Type' => 'application/hal+json' })
|
@@ -8,6 +8,7 @@ module Spinach
|
|
8
8
|
"self": { "href": "/" },
|
9
9
|
"posts": { "href": "/posts" },
|
10
10
|
"search": { "href": "/search{?q}", "templated": true },
|
11
|
+
"tagged": { "href": "/search{?tags*}", "templated": true },
|
11
12
|
"api:authors": { "href": "/authors" },
|
12
13
|
"next": { "href": "/page2" }
|
13
14
|
}
|
@@ -40,6 +40,7 @@ module Hyperclient
|
|
40
40
|
@entry_point = self
|
41
41
|
@options = { async: true }
|
42
42
|
@connection = nil
|
43
|
+
@resource = nil
|
43
44
|
yield self if block_given?
|
44
45
|
end
|
45
46
|
|
@@ -138,6 +139,7 @@ module Hyperclient
|
|
138
139
|
connection.request :hal_json
|
139
140
|
connection.response :hal_json, content_type: /\bjson$/
|
140
141
|
connection.adapter :net_http
|
142
|
+
connection.options.params_encoder = Faraday::FlatParamsEncoder
|
141
143
|
end
|
142
144
|
end
|
143
145
|
|
data/lib/hyperclient/version.rb
CHANGED
@@ -33,11 +33,14 @@ module Hyperclient
|
|
33
33
|
|
34
34
|
it 'creates a Faraday connection with the default block' do
|
35
35
|
handlers = entry_point.connection.builder.handlers
|
36
|
+
|
36
37
|
handlers.must_include Faraday::Response::RaiseError
|
37
38
|
handlers.must_include FaradayMiddleware::FollowRedirects
|
38
39
|
handlers.must_include FaradayMiddleware::EncodeHalJson
|
39
40
|
handlers.must_include FaradayMiddleware::ParseHalJson
|
40
41
|
handlers.must_include Faraday::Adapter::NetHttp
|
42
|
+
|
43
|
+
entry_point.connection.options.params_encoder.must_equal Faraday::FlatParamsEncoder
|
41
44
|
end
|
42
45
|
|
43
46
|
it 'raises a ConnectionAlreadyInitializedError if attempting to modify headers' do
|
@@ -172,12 +175,15 @@ module Hyperclient
|
|
172
175
|
|
173
176
|
it 'creates a Faraday connection with the default block plus any additional handlers' do
|
174
177
|
handlers = entry_point.connection.builder.handlers
|
178
|
+
|
175
179
|
handlers.must_include Faraday::Request::OAuth
|
176
180
|
handlers.must_include Faraday::Response::RaiseError
|
177
181
|
handlers.must_include FaradayMiddleware::FollowRedirects
|
178
182
|
handlers.must_include FaradayMiddleware::EncodeHalJson
|
179
183
|
handlers.must_include FaradayMiddleware::ParseHalJson
|
180
184
|
handlers.must_include Faraday::Adapter::NetHttp
|
185
|
+
|
186
|
+
entry_point.connection.options.params_encoder.must_equal Faraday::FlatParamsEncoder
|
181
187
|
end
|
182
188
|
end
|
183
189
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hyperclient
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Oriol Gual
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-03-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -183,29 +183,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
183
183
|
version: '0'
|
184
184
|
requirements: []
|
185
185
|
rubyforge_project:
|
186
|
-
rubygems_version: 2.
|
186
|
+
rubygems_version: 2.6.11
|
187
187
|
signing_key:
|
188
188
|
specification_version: 4
|
189
189
|
summary: ''
|
190
|
-
test_files:
|
191
|
-
- features/api_navigation.feature
|
192
|
-
- features/default_config.feature
|
193
|
-
- features/steps/api_navigation.rb
|
194
|
-
- features/steps/default_config.rb
|
195
|
-
- features/support/api.rb
|
196
|
-
- features/support/env.rb
|
197
|
-
- features/support/fixtures.rb
|
198
|
-
- test/faraday/connection_test.rb
|
199
|
-
- test/fixtures/collection.json
|
200
|
-
- test/fixtures/element.json
|
201
|
-
- test/fixtures/root.json
|
202
|
-
- test/hyperclient/attributes_test.rb
|
203
|
-
- test/hyperclient/collection_test.rb
|
204
|
-
- test/hyperclient/curie_test.rb
|
205
|
-
- test/hyperclient/entry_point_test.rb
|
206
|
-
- test/hyperclient/link_collection_test.rb
|
207
|
-
- test/hyperclient/link_test.rb
|
208
|
-
- test/hyperclient/resource_collection_test.rb
|
209
|
-
- test/hyperclient/resource_test.rb
|
210
|
-
- test/hyperclient_test.rb
|
211
|
-
- test/test_helper.rb
|
190
|
+
test_files: []
|