api_client_builder 1.4.0 → 1.4.1

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: 61488aa64b23c4e971039af08754ac43a70277fe13cdb14ec5cc95cdc2cb4c1a
4
- data.tar.gz: 1a14eaed9a3b913023c76e7b9788a3f8f39dea98749d299283eb5fe11d2a9d96
3
+ metadata.gz: 6fe7e4e6055363b600d2544fab5f2585f30b73da723f2ee928762b0913251190
4
+ data.tar.gz: d6a81b59ceacb77cd86d5f4df6badeb21ed15d2f90889cd048a0ffcf8dab0f3e
5
5
  SHA512:
6
- metadata.gz: 6b0431c58dff83f80caffcd891a7b984982143cc829403b1b49b97889570a452ea6df1d3b216fc1d2d76e68599d2ba1f3add4101eaca2402727e3d9ddbb274ec
7
- data.tar.gz: b717e8415fc64ffbe9de0eb2c8086c282d87b943577e1e4d5bf6e84b620594ad6de9b3ac0e89a6ac3e79c570ff4cd72d08be854ffa8dc4d819ca843d4b17be42
6
+ metadata.gz: 0775c90d669b8fe323902689e9d5c8c12fc7d62039f32704a5a3b2f4158c68aa77a9aa5e7ea4d5fff458435beacd564f5f12ba3145967ee37368c66fd6cb3981
7
+ data.tar.gz: 804e72d9df7452aac1756568c9663d61fe6d5c8bf34e9952340a9445cd616a55d5fa041312c3793f2b56e9f1561b7fe55051c47531716ab2a30783cca62ce621
@@ -28,10 +28,19 @@ module APIClientBuilder
28
28
  symboled_params.each do |param|
29
29
  value = params[param]
30
30
  raise ArgumentError, "Param :#{param} is required" unless value
31
- new_route.gsub!(":#{param}", CGI.escape(value.to_s))
31
+ new_route.gsub!(":#{param}", encode_ascii(value.to_s))
32
32
  end
33
33
 
34
34
  @base_uri.merge(new_route)
35
35
  end
36
+
37
+ private
38
+
39
+ def encode_ascii(str)
40
+ str.each_char.map do |c|
41
+ next c if c.force_encoding('ascii').valid_encoding?
42
+ CGI.escape c
43
+ end.join
44
+ end
36
45
  end
37
46
  end
@@ -1,3 +1,3 @@
1
1
  module APIClientBuilder
2
- VERSION = '1.4.0'.freeze
2
+ VERSION = '1.4.1'.freeze
3
3
  end
@@ -31,10 +31,12 @@ module APIClientBuilder
31
31
  url_generator = URLGenerator.new('https://www.domain.com/api/endpoints/')
32
32
 
33
33
  route = url_generator.build_route(
34
- 'route_to_object/:object_id/object',
35
- object_id: "\u1F4a9"
34
+ 'route_to_object/:object_id/object/:query_string',
35
+ object_id: "\u1F4a9",
36
+ query_string: "?sample[]=\u1F648\u1F649\u1F64A&success=party\u1F64C"
36
37
  )
37
- expect(route).to eq(URI.parse('https://www.domain.com/api/endpoints/route_to_object/%E1%BD%8A9/object'))
38
+ expect(route).to eq(URI.parse('https://www.domain.com/api/endpoints/route_to_object/%E1%BD%8A9/object/' \
39
+ '?sample[]=%E1%BD%A48%E1%BD%A49%E1%BD%A4A&success=party%E1%BD%A4C'))
38
40
  end
39
41
  end
40
42
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: api_client_builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jayce Higgins
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-20 00:00:00.000000000 Z
11
+ date: 2021-05-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry