rb-net_http-client 1.1.1 → 1.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/client/ext.rb +4 -0
- data/lib/core/utilities.rb +23 -2
- data/lib/request/request.rb +43 -32
- data/lib/request/schema.rb +1 -1
- data/lib/response/response.rb +0 -2
- data/lib/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dca512c41b7ef3a50b1bcaeb52c5f4a24fc516f78f616ecefa336f7c1d840c43
|
4
|
+
data.tar.gz: ccd78d9a1c8a7be03f7542650bf1051ebaa4fd74d131dc464db1705d65b1f7c9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fcb564bae3120591d9ebedf8177e1ebc723421548e76ab98ffb61196cf3e1de61cdc8486ac8bd938dcf3bad1546b03b5e4d2c10c32fada1f92d05b676caf6e64
|
7
|
+
data.tar.gz: 5ed36d3dd20e8505970ef371dcf4747c8b061f97a880af9567b324d1bcaf3f434ea269033f1e09eaf1ed03fb5708e51a8ffdcc8ec6f441365aa4081866b17173
|
data/lib/client/ext.rb
CHANGED
@@ -12,6 +12,8 @@ module NetHTTP
|
|
12
12
|
@proxy_uri = Core::Utilities.parse_uri(
|
13
13
|
Core::Utilities.construct_uri(
|
14
14
|
scheme: opts[:proxy_uri_scheme],
|
15
|
+
user: opts[:proxy_uri_user],
|
16
|
+
password: opts[:proxy_uri_password],
|
15
17
|
host: opts[:proxy_uri_host],
|
16
18
|
port: opts[:proxy_uri_port],
|
17
19
|
path: opts[:proxy_uri_path],
|
@@ -34,6 +36,8 @@ module NetHTTP
|
|
34
36
|
@uri = Core::Utilities.parse_uri(
|
35
37
|
Core::Utilities.construct_uri(
|
36
38
|
scheme: opts[:scheme],
|
39
|
+
user: opts[:user],
|
40
|
+
password: opts[:password],
|
37
41
|
host: opts[:host],
|
38
42
|
port: opts[:port],
|
39
43
|
path: opts[:path],
|
data/lib/core/utilities.rb
CHANGED
@@ -35,18 +35,39 @@ module NetHTTP
|
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
|
+
if uri[:user].to_s.empty? || uri[:password].to_s.empty?
|
39
|
+
user_pass = nil
|
40
|
+
else
|
41
|
+
user_pass = "#{uri[:user]}:#{uri[:password]}@"
|
42
|
+
end
|
43
|
+
|
38
44
|
scheme = "#{scheme}://"
|
39
45
|
host = uri[:host]
|
40
46
|
port = ":#{port}"
|
41
47
|
path = uri[:path]
|
42
|
-
query =
|
48
|
+
query = parse_query(uri[:query])
|
43
49
|
|
44
50
|
scheme = nil if scheme.to_s.empty?
|
45
51
|
port = nil if port.to_s.empty?
|
46
52
|
path = nil if uri[:path].to_s.empty?
|
47
53
|
query = nil if uri[:query].to_s.empty?
|
48
54
|
|
49
|
-
URI("#{scheme}#{host}#{port}#{path}#{query}").to_s
|
55
|
+
URI("#{scheme}#{user_pass}#{host}#{port}#{path}#{query}").to_s
|
56
|
+
end
|
57
|
+
|
58
|
+
def self.parse_query(query)
|
59
|
+
# todo: may need to update this as URI.escape is considered obsolete
|
60
|
+
case query
|
61
|
+
when String
|
62
|
+
query = query[1..-1] if query.start_with?('?')
|
63
|
+
URI.escape("?#{query}")
|
64
|
+
when Hash
|
65
|
+
query = query.map { |k, v| "#{k}=#{v}" }
|
66
|
+
query = query.join('&')
|
67
|
+
URI.escape("?#{query}")
|
68
|
+
else
|
69
|
+
nil
|
70
|
+
end
|
50
71
|
end
|
51
72
|
|
52
73
|
def self.parse_uri(uri)
|
data/lib/request/request.rb
CHANGED
@@ -31,13 +31,19 @@ module NetHTTP
|
|
31
31
|
|
32
32
|
opts[:method] = 'delete'
|
33
33
|
request_opts = request_opts(opts)
|
34
|
+
path = if request_opts[:query]
|
35
|
+
request_opts[:path] + request_opts[:query]
|
36
|
+
else
|
37
|
+
request_opts[:path]
|
38
|
+
end
|
39
|
+
|
34
40
|
logger.debug('Request Method => ' + request_opts[:method].to_s.upcase)
|
35
41
|
logger.debug('Request Host => ' + request_opts[:uri].scheme.to_s + '://' + request_opts[:uri].host.to_s)
|
36
42
|
logger.debug('Request Port => ' + request_opts[:uri].port.to_s)
|
37
|
-
logger.debug('Request Path => ' +
|
43
|
+
logger.debug('Request Path => ' + path)
|
38
44
|
NetHTTP::Response.new(
|
39
45
|
response: client.delete(
|
40
|
-
|
46
|
+
path
|
41
47
|
),
|
42
48
|
logger: logger
|
43
49
|
)
|
@@ -48,15 +54,21 @@ module NetHTTP
|
|
48
54
|
|
49
55
|
opts[:method] = 'get'
|
50
56
|
request_opts = request_opts(opts)
|
57
|
+
path = if request_opts[:query]
|
58
|
+
request_opts[:path] + request_opts[:query]
|
59
|
+
else
|
60
|
+
request_opts[:path]
|
61
|
+
end
|
62
|
+
|
51
63
|
logger.debug('Request Method => ' + request_opts[:method].to_s.upcase)
|
52
64
|
logger.debug('Request Host => ' + request_opts[:uri].scheme.to_s + '://' + request_opts[:uri].host.to_s)
|
53
65
|
logger.debug('Request Port => ' + request_opts[:uri].port.to_s)
|
54
|
-
logger.debug('Request Path => ' +
|
66
|
+
logger.debug('Request Path => ' + path)
|
55
67
|
logger.debug('Request Headers =>')
|
56
68
|
logger.debug(request_opts[:headers])
|
57
69
|
NetHTTP::Response.new(
|
58
70
|
response: client.get(
|
59
|
-
|
71
|
+
path,
|
60
72
|
request_opts[:headers]
|
61
73
|
),
|
62
74
|
logger: logger
|
@@ -68,17 +80,23 @@ module NetHTTP
|
|
68
80
|
|
69
81
|
opts[:method] = 'post'
|
70
82
|
request_opts = request_opts(opts)
|
83
|
+
path = if request_opts[:query]
|
84
|
+
request_opts[:path] + request_opts[:query]
|
85
|
+
else
|
86
|
+
request_opts[:path]
|
87
|
+
end
|
88
|
+
|
71
89
|
logger.debug('Request Method => ' + request_opts[:method].to_s.upcase)
|
72
90
|
logger.debug('Request Host => ' + request_opts[:uri].scheme.to_s + '://' + request_opts[:uri].host.to_s)
|
73
91
|
logger.debug('Request Port => ' + request_opts[:uri].port.to_s)
|
74
|
-
logger.debug('Request Path => ' +
|
92
|
+
logger.debug('Request Path => ' + path)
|
75
93
|
logger.debug('Request Headers =>')
|
76
94
|
logger.debug(request_opts[:headers])
|
77
95
|
logger.debug('Request Body =>')
|
78
96
|
logger.debug(request_opts[:body])
|
79
97
|
NetHTTP::Response.new(
|
80
98
|
response: client.post(
|
81
|
-
|
99
|
+
path,
|
82
100
|
request_opts[:body],
|
83
101
|
request_opts[:headers]
|
84
102
|
),
|
@@ -91,17 +109,23 @@ module NetHTTP
|
|
91
109
|
|
92
110
|
opts[:method] = 'post_form'
|
93
111
|
request_opts = request_opts(opts)
|
112
|
+
path = if request_opts[:query]
|
113
|
+
request_opts[:path] + request_opts[:query]
|
114
|
+
else
|
115
|
+
request_opts[:path]
|
116
|
+
end
|
117
|
+
|
94
118
|
logger.debug('Request Method => ' + request_opts[:method].to_s.upcase)
|
95
119
|
logger.debug('Request Host => ' + request_opts[:uri].scheme.to_s + '://' + request_opts[:uri].host.to_s)
|
96
120
|
logger.debug('Request Port => ' + request_opts[:uri].port.to_s)
|
97
|
-
logger.debug('Request Path => ' +
|
121
|
+
logger.debug('Request Path => ' + path)
|
98
122
|
logger.debug('Request Headers =>')
|
99
123
|
logger.debug(request_opts[:headers])
|
100
124
|
logger.debug('Request Body =>')
|
101
125
|
logger.debug(URI.encode_www_form(request_opts[:body]))
|
102
126
|
NetHTTP::Response.new(
|
103
127
|
response: client.post(
|
104
|
-
|
128
|
+
path,
|
105
129
|
URI.encode_www_form(request_opts[:body]),
|
106
130
|
request_opts[:headers]
|
107
131
|
),
|
@@ -116,17 +140,23 @@ module NetHTTP
|
|
116
140
|
|
117
141
|
opts[:method] = 'put'
|
118
142
|
request_opts = request_opts(opts)
|
143
|
+
path = if request_opts[:query]
|
144
|
+
request_opts[:path] + request_opts[:query]
|
145
|
+
else
|
146
|
+
request_opts[:path]
|
147
|
+
end
|
148
|
+
|
119
149
|
logger.debug('Request Method => ' + request_opts[:method].to_s.upcase)
|
120
150
|
logger.debug('Request Host => ' + request_opts[:uri].scheme.to_s + '://' + request_opts[:uri].host.to_s)
|
121
151
|
logger.debug('Request Port => ' + request_opts[:uri].port.to_s)
|
122
|
-
logger.debug('Request Path => ' +
|
152
|
+
logger.debug('Request Path => ' + path)
|
123
153
|
logger.debug('Request Headers =>')
|
124
154
|
logger.debug(request_opts[:headers])
|
125
155
|
logger.debug('Request Body =>')
|
126
156
|
logger.debug(request_opts[:body])
|
127
157
|
NetHTTP::Response.new(
|
128
158
|
response: client.put(
|
129
|
-
|
159
|
+
path,
|
130
160
|
request_opts[:body],
|
131
161
|
request_opts[:headers]
|
132
162
|
),
|
@@ -143,10 +173,8 @@ module NetHTTP
|
|
143
173
|
|
144
174
|
request_method = opts[:method] ||= 'post'
|
145
175
|
request_uri = Core::Utilities.parse_uri(opts[:uri] || opts[:url] || uri)
|
146
|
-
request_path =
|
147
|
-
|
148
|
-
query: (opts[:query] || request_uri.query || query)
|
149
|
-
)
|
176
|
+
request_path = (opts[:path] || request_uri.path || path).chomp('?')
|
177
|
+
request_query = Core::Utilities.parse_query((opts[:query] || request_uri.query || query))
|
150
178
|
request_headers = opts[:headers] ||= {}
|
151
179
|
request_body = opts[:body] ||= nil
|
152
180
|
|
@@ -154,27 +182,10 @@ module NetHTTP
|
|
154
182
|
method: request_method,
|
155
183
|
uri: request_uri,
|
156
184
|
path: request_path,
|
185
|
+
query: request_query,
|
157
186
|
headers: request_headers,
|
158
187
|
body: request_body
|
159
188
|
}
|
160
189
|
end
|
161
|
-
|
162
|
-
def request_path(opts)
|
163
|
-
# i.e. URI('https://www.google.com')
|
164
|
-
# uri.path defaults to "" if empty / not set
|
165
|
-
# uri.query defaults to nil if empty / not set
|
166
|
-
path = opts[:path].to_s.chomp('?')
|
167
|
-
if opts[:query].to_s.start_with?('?')
|
168
|
-
query = opts[:query][1..-1]
|
169
|
-
else
|
170
|
-
query = opts[:query].to_s
|
171
|
-
end
|
172
|
-
|
173
|
-
return '' if path.empty? && query.empty?
|
174
|
-
return path if query.empty?
|
175
|
-
return '/' + query if path.empty?
|
176
|
-
|
177
|
-
path + '?' + query
|
178
|
-
end
|
179
190
|
end
|
180
191
|
end
|
data/lib/request/schema.rb
CHANGED
@@ -14,7 +14,7 @@ module NetHTTP
|
|
14
14
|
required(:method).filled(type?: String)
|
15
15
|
optional(:headers).maybe(type?: Hash)
|
16
16
|
optional(:body).maybe
|
17
|
-
optional(:query).filled
|
17
|
+
optional(:query).filled
|
18
18
|
|
19
19
|
rule(if_url_and_uri_are_nil_must_provide_path: [:uri, :url, :path]) do |uri, url, path|
|
20
20
|
uri.empty?.then(url.empty?.then(path.filled?))
|
data/lib/response/response.rb
CHANGED
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rb-net_http-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Bostian
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-05-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|