spaceborne 0.1.25 → 0.1.30

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 232e970030cdc9e2cc7684f87716e641e8a91282884238f65a6088d1a733a2ac
4
- data.tar.gz: 540c79c202857327fa6660abdb9630ae941fe01cb87a14dff0aaa9971594946f
3
+ metadata.gz: 19012125b047e951b20210def0f4ea65b6c7f10542e666eb153df34e02783d34
4
+ data.tar.gz: dd9e9059c96a19b14baad98b4a86454a41643bb220094c7df62db213017aa99c
5
5
  SHA512:
6
- metadata.gz: 64a6a4e93ad545b4d8031daf0435bf14dc4537ff054bda2239baa522dbadebe7cc7972faea3abbe77822efbc1c3f05d3595f83d1743075982db8355c871ce34b
7
- data.tar.gz: 52ec47b8cb939847dc0a03640b520f770190dc8aabf4f204bc1bd17998664dd90dfd9ba75a44e6f597c47cced27f88bdc34f326475dbe0e37d436d1e6a86e19a
6
+ metadata.gz: 654824c04e0658652b73f32cf59274d63ffc78e44e5f2119b31f367300b70ae76fbce719b8eea06b574acd23de3a4c57571c7bd3d12000a75d713df707784b19
7
+ data.tar.gz: b9af3be6d62faa09701ca474bb49141e603bff8d00227fcab1c711e8461866cf7bf8c1bb1bd8bbdc56dfb334a54ae158b2cec534b5faf343e84e60462e12fc7e
data/.gitignore CHANGED
@@ -8,3 +8,4 @@
8
8
  /spec/reports/
9
9
  /tmp/
10
10
  .byebug_history
11
+ .idea/
@@ -1 +1 @@
1
- ruby-2.4.1
1
+ ruby-2.5.5
@@ -34,12 +34,11 @@ module Spaceborne
34
34
  def response_body
35
35
  return '' if response.request.method.casecmp('head').zero?
36
36
 
37
- str = if json?(response.headers)
38
- " JSON_BODY\n#{JSON.pretty_generate(json_body)}\n"
39
- else
40
- " BODY\n#{response.body}\n"
41
- end
42
- str
37
+ if json?(response.headers)
38
+ " JSON_BODY\n#{JSON.pretty_generate(json_body)}\n"
39
+ else
40
+ " BODY\n#{response.body}\n"
41
+ end
43
42
  end
44
43
 
45
44
  def request_info(str = "\n")
@@ -118,18 +117,23 @@ module Airborne
118
117
  end
119
118
  end
120
119
 
121
- def make_request(method, url, options = {})
120
+ def pre_request(options)
122
121
  @json_body = nil
123
122
  local_options = split_options(options)
124
123
  handle_proxy(options, local_options)
125
124
  hdrs = calc_headers(options, local_options)
126
125
  @request_body = calc_body(options, local_options)
127
- send_restclient(method, get_url(url), @request_body, hdrs)
126
+ [hdrs, @request_body]
127
+ end
128
+
129
+ def make_request(method, url, options = {})
130
+ hdrs, body = pre_request(options)
131
+ send_restclient(method, get_url(url), body, hdrs)
128
132
  rescue RestClient::ServerBrokeConnection => e
129
133
  raise e
130
134
  rescue RestClient::Exception => e
131
- if [301, 302].include?(e.response.code)
132
- e.response.follow_redirection
135
+ if [301, 302].include?(e.response&.code)
136
+ e.response.&follow_redirection
133
137
  else
134
138
  e.response
135
139
  end
@@ -155,16 +159,16 @@ module Airborne
155
159
  end
156
160
  end
157
161
 
158
- def exception_path_adder(path)
162
+ def exception_path_adder(args)
159
163
  yield
160
164
  rescue Airborne::ExpectationError => e
161
- e.message << " at location #{path}"
165
+ e.message << "\nexpect arguments: #{args}"
162
166
  raise e
163
167
  end
164
168
 
165
169
  def expect_json_types(*args)
166
170
  call_with_relative_path(json_body, args) do |param, body|
167
- exception_path_adder(args[0]) do
171
+ exception_path_adder(args) do
168
172
  expect_json_types_impl(param, body)
169
173
  end
170
174
  end
@@ -172,7 +176,7 @@ module Airborne
172
176
 
173
177
  def expect_json(*args)
174
178
  call_with_relative_path(json_body, args) do |param, body|
175
- exception_path_adder(args[0]) do
179
+ exception_path_adder(args) do
176
180
  expect_json_impl(param, body)
177
181
  end
178
182
  end
@@ -180,7 +184,7 @@ module Airborne
180
184
 
181
185
  def expect_header_types(*args)
182
186
  call_with_relative_path(response.headers, args) do |param, body|
183
- exception_path_adder(args[0]) do
187
+ exception_path_adder(args) do
184
188
  expect_json_types_impl(param, body)
185
189
  end
186
190
  end
@@ -188,7 +192,7 @@ module Airborne
188
192
 
189
193
  def expect_header(*args)
190
194
  call_with_relative_path(response.headers, args) do |param, body|
191
- exception_path_adder(args[0]) do
195
+ exception_path_adder(args) do
192
196
  expect_json_impl(param, body)
193
197
  end
194
198
  end
@@ -209,9 +213,9 @@ module Airborne
209
213
  when 'Array'
210
214
  expect_all(json, &block)
211
215
  when 'Hash'
212
- json.each do |k, _v|
213
- yield json[k]
214
- end
216
+ json.each { |k, _v| yield json[k] }
217
+ else
218
+ raise ExpectationError, "expected array or hash, got #{json.class.name}"
215
219
  end
216
220
  end
217
221
 
@@ -225,18 +229,22 @@ module Airborne
225
229
  end
226
230
  end
227
231
 
228
- def get_by_path(path, json, &block)
232
+ def iterate_path(path)
229
233
  raise PathError, "Invalid Path, contains '..'" if /\.\./ =~ path
230
234
 
231
- type = false
232
235
  parts = path.to_s.split('.')
233
236
  parts.each_with_index do |part, index|
237
+ yield(parts, part, index)
238
+ end
239
+ end
240
+
241
+ def get_by_path(path, json, type = false, &block)
242
+ iterate_path(path) do |parts, part, index|
234
243
  if %w[* ?].include?(part)
235
244
  ensure_array_or_hash(path, json)
236
245
  type = part
237
- if index < parts.length.pred
238
- walk_with_path(type, index, path, parts, json, &block) && return
239
- end
246
+ walk_with_path(type, index, path, parts, json, &block) && return if index < parts.length.pred
247
+
240
248
  next
241
249
  end
242
250
  json = do_process_json(part, json)
@@ -1,3 +1,3 @@
1
1
  module Spaceborne
2
- VERSION = '0.1.25'.freeze
2
+ VERSION = '0.1.30'.freeze
3
3
  end
@@ -12,8 +12,9 @@ Gem::Specification.new do |spec|
12
12
  spec.description = 'Extends brooklynDev/airborne'
13
13
  spec.homepage = 'https://github.com/keithrw54/spaceborne.git'
14
14
  spec.license = 'MIT'
15
+ spec.required_ruby_version = '~> 2.5.5'
15
16
 
16
- spec.files = `git ls-files -z`.split("\x0").reject do |f|
17
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
17
18
  f.match(%r{^(test|spec|features)/})
18
19
  end
19
20
  spec.bindir = 'exe'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spaceborne
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.25
4
+ version: 0.1.30
5
5
  platform: ruby
6
6
  authors:
7
7
  - Keith Williams
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-05-13 00:00:00.000000000 Z
11
+ date: 2020-12-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -185,15 +185,15 @@ homepage: https://github.com/keithrw54/spaceborne.git
185
185
  licenses:
186
186
  - MIT
187
187
  metadata: {}
188
- post_install_message:
188
+ post_install_message:
189
189
  rdoc_options: []
190
190
  require_paths:
191
191
  - lib
192
192
  required_ruby_version: !ruby/object:Gem::Requirement
193
193
  requirements:
194
- - - ">="
194
+ - - "~>"
195
195
  - !ruby/object:Gem::Version
196
- version: '0'
196
+ version: 2.5.5
197
197
  required_rubygems_version: !ruby/object:Gem::Requirement
198
198
  requirements:
199
199
  - - ">="
@@ -201,7 +201,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
201
201
  version: '0'
202
202
  requirements: []
203
203
  rubygems_version: 3.0.8
204
- signing_key:
204
+ signing_key:
205
205
  specification_version: 4
206
206
  summary: Gem supporting API testing
207
207
  test_files: []