spaceborne 0.1.27 → 0.1.32

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
  SHA256:
3
- metadata.gz: 65594555f221b6872a3879ff3b950fb367dfe58e59e5fa6a783adaef06500b14
4
- data.tar.gz: 2f2fcd333db9cccfd7123344a7fbdc64d6eef5881b1a6753faaa27187e5520e0
3
+ metadata.gz: 1d0cc2ecd5be2a2cf85fe7df08c05514ab0cb74a5904eaf5b3a8b1c70a2e375f
4
+ data.tar.gz: 04d190d82b7a1e207ec8f0a24263ac43b141e04350f763a80b86c7362dc60625
5
5
  SHA512:
6
- metadata.gz: 7dbff4868d6078d249e9305a09bd9538a79e6aada32de8bcf54215f4abef7a3b815086ca968ca43b7a9ad813bf048cc33d5513bc62e981befcfaf77d43482a3a
7
- data.tar.gz: 0f8252b4ff5715d6abf9b34ba85de55073eb53dee854a2420e81e7f20fdf93ad18bdff1bd39785595e77a2601402e8fc6bd3fbf8945ffb4cb3816bfe9176493f
6
+ metadata.gz: e8c1d2bedc95a45d5320e6b69a116ea470bb200f67e801258c34e3968c0cd6d90021c70890467c68bfd5d63f79bc7688959ac5da921e0faecffae0de690c5287
7
+ data.tar.gz: 28784cf263020280389d5efa9a45ac19c1fa463c0476dfae384d4b47b5f5683962e483790e2ea6d5a48716d69cde1c6a951fe718824521a1a0df0986a959e3a4
data/.gitignore CHANGED
@@ -8,3 +8,4 @@
8
8
  /spec/reports/
9
9
  /tmp/
10
10
  .byebug_history
11
+ .idea/
data/README.md CHANGED
@@ -205,8 +205,9 @@ Validation for headers follows the same pattern as above, although nesting of mu
205
205
  * `expect_header_types same arguments/handling as expect_json_types`
206
206
  5. It is possible to use non-json data in a request
207
207
  6. Expectations on a response with an array of hashes with keys that are unknown, but that have a defined structure are supported (using the '*' in a path)
208
+ 7. Responses that have header with Content-Encoding of gzip are gunzip'd in json_body
208
209
 
209
- The following example shows how this works
210
+ The following example shows how extension # 6 works
210
211
 
211
212
  ```ruby
212
213
  { "array_of_hashes": [
data/lib/spaceborne.rb CHANGED
@@ -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")
@@ -59,8 +58,16 @@ end
59
58
 
60
59
  # monkeypatch Airborne
61
60
  module Airborne
61
+ def decode_body
62
+ if response.headers[:content_encoding]&.include?('gzip')
63
+ Zlib::Inflate.new(32 + Zlib::MAX_WBITS).inflate(response.body)
64
+ else
65
+ response.body
66
+ end
67
+ end
68
+
62
69
  def json_body
63
- @json_body ||= JSON.parse(response.body, symbolize_names: true)
70
+ @json_body ||= JSON.parse(decode_body, symbolize_names: true)
64
71
  rescue StandardError
65
72
  raise InvalidJsonError, 'Api request returned invalid json'
66
73
  end
@@ -133,8 +140,8 @@ module Airborne
133
140
  rescue RestClient::ServerBrokeConnection => e
134
141
  raise e
135
142
  rescue RestClient::Exception => e
136
- if [301, 302].include?(e.response.code)
137
- e.response.follow_redirection
143
+ if [301, 302].include?(e.response&.code)
144
+ e.response.&follow_redirection
138
145
  else
139
146
  e.response
140
147
  end
@@ -163,7 +170,7 @@ module Airborne
163
170
  def exception_path_adder(args)
164
171
  yield
165
172
  rescue Airborne::ExpectationError => e
166
- e.message << "expect arguments: #{args}"
173
+ e.message << "\nexpect arguments: #{args}"
167
174
  raise e
168
175
  end
169
176
 
@@ -214,9 +221,9 @@ module Airborne
214
221
  when 'Array'
215
222
  expect_all(json, &block)
216
223
  when 'Hash'
217
- json.each do |k, _v|
218
- yield json[k]
219
- end
224
+ json.each { |k, _v| yield json[k] }
225
+ else
226
+ raise ExpectationError, "expected array or hash, got #{json.class.name}"
220
227
  end
221
228
  end
222
229
 
@@ -1,3 +1,3 @@
1
1
  module Spaceborne
2
- VERSION = '0.1.27'.freeze
2
+ VERSION = '0.1.32'.freeze
3
3
  end
data/spaceborne.gemspec CHANGED
@@ -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.27
4
+ version: 0.1.32
5
5
  platform: ruby
6
6
  authors:
7
7
  - Keith Williams
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-09-22 00:00:00.000000000 Z
11
+ date: 2021-06-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -191,9 +191,9 @@ 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
  - - ">="