json_api_client 0.2.1 → 0.2.2
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cd3a5cd09cfe62026ca92b0f96bdf96bbbf448fa
|
4
|
+
data.tar.gz: fff1f331e95db8247b97220be4be16b8d5b89b2a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2c4abe201352dd98b06d362c88a0b44ef57a048000835bce3d43524bce91dfccba953d238de9329ac0f2869d30fe4ed8e6d358fc92675ca99f5c7f2546c62b51
|
7
|
+
data.tar.gz: f5e3c21c58d71b682372da6c550030c8176a3d56d9d6c7f7dfb8a167031f21d1a38335c359ceb9a7ce519e5df39c673b30c5b17ad279584beeb9c0828d9a63aa
|
@@ -8,7 +8,7 @@ module JsonApiClient
|
|
8
8
|
builder.request :url_encoded
|
9
9
|
builder.use Middleware::JsonRequest
|
10
10
|
builder.use Middleware::Status
|
11
|
-
builder.use
|
11
|
+
builder.use Middleware::ParseJson
|
12
12
|
builder.adapter Faraday.default_adapter
|
13
13
|
end
|
14
14
|
yield(self) if block_given?
|
@@ -17,7 +17,7 @@ module JsonApiClient
|
|
17
17
|
# insert middleware before ParseJson - middleware executed in reverse order -
|
18
18
|
# inserted middleware will run after json parsed
|
19
19
|
def use(middleware, *args, &block)
|
20
|
-
faraday.builder.insert_before(
|
20
|
+
faraday.builder.insert_before(Middleware::ParseJson, middleware, *args, &block)
|
21
21
|
end
|
22
22
|
|
23
23
|
def delete(middleware)
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module JsonApiClient
|
2
|
+
module Middleware
|
3
|
+
class ParseJson < Faraday::Middleware
|
4
|
+
|
5
|
+
def call(environment)
|
6
|
+
@app.call(environment).on_complete do |env|
|
7
|
+
if process_response_type?(response_type(env))
|
8
|
+
env[:raw_body] = env[:body]
|
9
|
+
env[:body] = parse(env[:body])
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def parse(body)
|
17
|
+
::JSON.parse(body) unless body.strip.empty?
|
18
|
+
end
|
19
|
+
|
20
|
+
def response_type(env)
|
21
|
+
type = env[:response_headers]['Content-Type'].to_s
|
22
|
+
type = type.split(';', 2).first if type.index(';')
|
23
|
+
type
|
24
|
+
end
|
25
|
+
|
26
|
+
def process_response_type?(type)
|
27
|
+
!!type.match(/\bjson$/)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/lib/json_api_client.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: json_api_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeff Ching
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-05-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -38,20 +38,6 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 0.8.0
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: faraday_middleware
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - "~>"
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: 0.9.0
|
48
|
-
type: :runtime
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - "~>"
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: 0.9.0
|
55
41
|
- !ruby/object:Gem::Dependency
|
56
42
|
name: webmock
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,6 +80,7 @@ files:
|
|
94
80
|
- lib/json_api_client/helpers/serializable.rb
|
95
81
|
- lib/json_api_client/middleware.rb
|
96
82
|
- lib/json_api_client/middleware/json_request.rb
|
83
|
+
- lib/json_api_client/middleware/parse_json.rb
|
97
84
|
- lib/json_api_client/middleware/status.rb
|
98
85
|
- lib/json_api_client/parser.rb
|
99
86
|
- lib/json_api_client/query.rb
|