squake 0.6.0 → 0.6.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
  SHA256:
3
- metadata.gz: 9998b15ce76aa8dbc8be90d10591fcc590a6371f49ff5f18782ce77081ff1420
4
- data.tar.gz: 68b42dec21a0f57f64b1fd12b1a206496cd7b0e2c2aefccb75d3890914865f2a
3
+ metadata.gz: f0a27760d58eb232e2a38bc0fe9fca78576aa9c47531697af30e94ddcf32727d
4
+ data.tar.gz: 13e3f50d2b597c753ac91a088eb1c36e756ccb18b8acdf4dce936e9851cca9fd
5
5
  SHA512:
6
- metadata.gz: 20b305cc676a3fce372ca814206a4299b173ae9560115f582dd957abd2387b3d8defd44f254ec5a835a94e1eb6e366fe7c23ecb9bf5c71edc360ee92268ebb05
7
- data.tar.gz: ef97791c2cfb0bddde5cc0e15eca9e5d2055d24daceffee4e77473d3595bb4fa5f1ee5eeb6430580b7da2efdc0a610763f5d75bcee65010d727a04774706ade0
6
+ metadata.gz: 257eb22823b5d8b47109e00dbf47e76e6becbc18ece39a18cbfa74437c6c5e5a08ba77bff90a9cbc6467fc548619632f9b197435cd9918c7feb583fe90141f06
7
+ data.tar.gz: f70d1d24c37b130f4e93705b88d81fbccd0090d9df2770735ae193be7c1022e9332a92efb69dfc5482b1232917eeea041df8690c8bc14838097fbfc228314a6e
data/lib/squake/client.rb CHANGED
@@ -68,7 +68,7 @@ module Squake
68
68
 
69
69
  headers = request_headers(api_key).merge!(headers)
70
70
  query = query_params ? Util.encode_parameters(query_params) : nil
71
- body = body_params ? ::Oj.dump(body_params) : nil
71
+ body = body_params ? ::Oj.dump(body_params, Squake::OJ_CONFIG) : nil
72
72
  sanitized_path = path[0] == '/' ? path : "/#{path}"
73
73
  uri = URI.parse(api_base + sanitized_path)
74
74
 
@@ -93,6 +93,7 @@ module Squake
93
93
  'http.route': request.path,
94
94
  'http.headers': request.to_hash,
95
95
  },
96
+ Squake::OJ_CONFIG,
96
97
  )
97
98
  canonical_request_line.gsub!(api_key, 'API_KEY_REDACTED')
98
99
  @config.logger.info(canonical_request_line)
@@ -118,7 +119,7 @@ module Squake
118
119
 
119
120
  sig { params(result_body: T.untyped).returns(JsonResponseBody) }
120
121
  private def try_parse_json(result_body)
121
- ::Oj.load(result_body, symbol_keys: true)
122
+ ::Oj.load(result_body, Squake::OJ_CONFIG)
122
123
  rescue ::Oj::ParseError, TypeError, JSON::ParserError, EncodingError => e
123
124
  # in case of an error, Squake's response body is HTML not JSON
124
125
  { error: { 'message' => e.message, 'body' => result_body } }
@@ -1,6 +1,7 @@
1
1
  # typed: strict
2
2
  # frozen_string_literal: true
3
3
 
4
+ require_relative 'client'
4
5
  require 'oj'
5
6
 
6
7
  module Squake
@@ -36,7 +37,7 @@ module Squake
36
37
  <<~TXT
37
38
  Failed Request
38
39
  http_code=#{code}
39
- body=#{::Oj.dump(body)}
40
+ body=#{::Oj.dump(body, Squake::OJ_CONFIG)}
40
41
  original_request_http_method=#{original_request.method}
41
42
  original_request_http_path=#{original_request.path}
42
43
  TXT
@@ -2,5 +2,5 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Squake
5
- VERSION = '0.6.0'
5
+ VERSION = '0.6.2'
6
6
  end
data/lib/squake.rb CHANGED
@@ -3,16 +3,24 @@
3
3
 
4
4
  require 'sorbet-runtime'
5
5
  require 'oj'
6
+ require 'uri'
6
7
  require 'net/http'
7
8
 
8
- Oj.default_options = {
9
- mode: :compat, # required to dump hashes with symbol-keys
10
- symbol_keys: true,
11
- }
12
-
13
- Dir[File.join(__dir__, './**/*', '*.rb')].each { require(_1) }
9
+ Dir[File.join(__dir__, './**/*', '*.rb')].each { |file_path| require(file_path) }
14
10
 
15
11
  module Squake
12
+ # Don't freeze this constant, since we don't know what Oj is doing with the object under the hood
13
+ # Don't set this as global Oj settings to avoid bleeding into other apps that build on this gem
14
+ # rubocop:disable Style/MutableConstant
15
+ OJ_CONFIG = T.let(
16
+ {
17
+ mode: :compat, # required to dump hashes with symbol-keys
18
+ symbol_keys: true,
19
+ },
20
+ T::Hash[Symbol, T.untyped],
21
+ )
22
+ # rubocop:enable Style/MutableConstant
23
+
16
24
  class << self
17
25
  extend T::Sig
18
26
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: squake
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - SQUAKE
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-12-19 00:00:00.000000000 Z
11
+ date: 2024-01-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: net-http
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: sorbet
42
+ name: sorbet-runtime
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
@@ -53,7 +53,7 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: sorbet-runtime
56
+ name: uri
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: base64
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: byebug
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -218,7 +232,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
218
232
  - !ruby/object:Gem::Version
219
233
  version: '0'
220
234
  requirements: []
221
- rubygems_version: 3.4.19
235
+ rubygems_version: 3.5.3
222
236
  signing_key:
223
237
  specification_version: 4
224
238
  summary: The industry solution for sustainable travel and logistics.