api_client_builder 1.4.0 → 1.4.1

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: 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