grac 2.5.0 → 3.0.0
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/grac/client.rb +7 -22
- data/lib/grac/response.rb +4 -3
- data/lib/grac/version.rb +1 -1
- metadata +7 -35
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 916f6671cff0b7712c90a00f6775ee05d4bf8636
|
4
|
+
data.tar.gz: 70ffc2800c0c0b936d7d94e80ea6ece0e7e8af9b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 49ad9f2608734ff7d75a9bbf0e658c9bc4300ae6aa6a172c511f3c7ffe6f282e06a69fa5e96898f9a228ca4f552417e190b65b0fcff93b6c2418f4be367d5586
|
7
|
+
data.tar.gz: 0e2aaa5c0299332ba8c1bebf562a5bed723d4f630b67a3afc7c7da8951dfc9fefa8755a0d9d328e6e181cdd4b48975a665549fdd979fed2610def29135cffd44
|
data/lib/grac/client.rb
CHANGED
@@ -22,29 +22,13 @@ module Grac
|
|
22
22
|
"User-Agent" => "Grac v#{Grac::VERSION}",
|
23
23
|
"Content-Type" => "application/json;charset=utf-8"
|
24
24
|
}.merge(options[:headers] || {}),
|
25
|
-
:postprocessing => {},
|
25
|
+
:postprocessing => options[:postprocessing] || {},
|
26
26
|
:middleware => options[:middleware] || []
|
27
27
|
}
|
28
|
-
|
29
|
-
if options[:postprocessing]
|
30
|
-
options[:postprocessing]
|
31
|
-
.each_with_object(postprocessing = {}) do |(pattern, transformation), obj|
|
32
|
-
if pattern.kind_of?(Regexp)
|
33
|
-
obj[pattern] = transformation
|
34
|
-
else
|
35
|
-
obj[Regexp.new(pattern)] = transformation
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
@options[:postprocessing] = postprocessing
|
40
|
-
end
|
41
|
-
|
42
28
|
@options.freeze
|
43
|
-
|
44
29
|
[:params, :headers, :postprocessing, :middleware].each do |k|
|
45
30
|
@options[k].freeze
|
46
31
|
end
|
47
|
-
|
48
32
|
@uri.freeze
|
49
33
|
end
|
50
34
|
|
@@ -190,11 +174,12 @@ module Grac
|
|
190
174
|
if data.kind_of?(Hash)
|
191
175
|
data.each do |key, value|
|
192
176
|
processing = nil
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
177
|
+
@options[:postprocessing].each do |regex, action|
|
178
|
+
if /#{regex}/ =~ key
|
179
|
+
processing = action
|
180
|
+
end
|
197
181
|
end
|
182
|
+
|
198
183
|
data[key] = postprocessing(value, processing)
|
199
184
|
end
|
200
185
|
elsif data.kind_of?(Array)
|
@@ -212,7 +197,7 @@ module Grac
|
|
212
197
|
# We don't want spaces to be encoded as plus sign - a plus sign can be ambiguous in a URL and
|
213
198
|
# either represent a plus sign or a space.
|
214
199
|
# CGI::escape replaces all plus signs with their percent-encoding representation, so all
|
215
|
-
# remaining plus signs
|
200
|
+
# remaining plus signs are spaces. Replacing these with a space's percent encoding makes the
|
216
201
|
# encoding unambiguous.
|
217
202
|
CGI::escape(value).gsub('+', '%20')
|
218
203
|
end
|
data/lib/grac/response.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
|
-
require '
|
1
|
+
require 'json'
|
2
2
|
require 'forwardable'
|
3
|
+
|
3
4
|
require_relative './exception'
|
4
5
|
|
5
6
|
module Grac
|
@@ -25,8 +26,8 @@ module Grac
|
|
25
26
|
end
|
26
27
|
|
27
28
|
def parsed_json
|
28
|
-
|
29
|
-
rescue
|
29
|
+
JSON.parse(body)
|
30
|
+
rescue JSON::ParserError
|
30
31
|
raise Exception::InvalidContent.new(body, 'json')
|
31
32
|
end
|
32
33
|
|
data/lib/grac/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: grac
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tobias Schoknecht
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-01-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '3.
|
33
|
+
version: '3.7'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '3.
|
40
|
+
version: '3.7'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: builder
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,20 +52,6 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '3.2'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: benchmark-ips
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - "~>"
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '2.7'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - "~>"
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '2.7'
|
69
55
|
- !ruby/object:Gem::Dependency
|
70
56
|
name: rack-test
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,34 +66,20 @@ dependencies:
|
|
80
66
|
- - "~>"
|
81
67
|
- !ruby/object:Gem::Version
|
82
68
|
version: '0.7'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: oj
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - "~>"
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: 3.6.13
|
90
|
-
type: :runtime
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - "~>"
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: 3.6.13
|
97
69
|
- !ruby/object:Gem::Dependency
|
98
70
|
name: typhoeus
|
99
71
|
requirement: !ruby/object:Gem::Requirement
|
100
72
|
requirements:
|
101
73
|
- - "~>"
|
102
74
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
75
|
+
version: '1'
|
104
76
|
type: :runtime
|
105
77
|
prerelease: false
|
106
78
|
version_requirements: !ruby/object:Gem::Requirement
|
107
79
|
requirements:
|
108
80
|
- - "~>"
|
109
81
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
82
|
+
version: '1'
|
111
83
|
description: Generic REST API Client
|
112
84
|
email:
|
113
85
|
- tobias.schoknecht@barzahlen.de
|
@@ -140,7 +112,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
140
112
|
version: '0'
|
141
113
|
requirements: []
|
142
114
|
rubyforge_project:
|
143
|
-
rubygems_version: 2.
|
115
|
+
rubygems_version: 2.2.2
|
144
116
|
signing_key:
|
145
117
|
specification_version: 4
|
146
118
|
summary: Very generic client for REST API with basic error handling
|