stduritemplate 0.0.49 → 0.0.50
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 +4 -4
- data/lib/stduritemplate.rb +22 -11
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d65f2f371fed1a3e81cd51126e8dc5530c6a79616e7f5690f1782628de3110bd
|
4
|
+
data.tar.gz: cee3b07fc8bd31290111736c4ca90704b540c643b7936373998b77c96a2783bc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4cc124c6f83821e76e620b418d59fff869e6b75738a075e67b01014c098385fe5fa76cde28147a6a60d1fdddc954e3cfc6ca2dc6ace5141041dcb21c154a63e2
|
7
|
+
data.tar.gz: 65f38acf64bfd852ebd0315928019fa4dcddde8a9fd7098e7959f31f1f373e13a6681cfa6afe67c323c19b1c139132b114e6597d9a301fead299e779e9058469
|
data/lib/stduritemplate.rb
CHANGED
@@ -188,6 +188,20 @@ module StdUriTemplate
|
|
188
188
|
end
|
189
189
|
end
|
190
190
|
|
191
|
+
def self.is_surrogate(cp)
|
192
|
+
cp.bytes.length > 1
|
193
|
+
end
|
194
|
+
|
195
|
+
def self.is_iprivate(cp)
|
196
|
+
(0xE000..0xF8FF).include?(cp.ord)
|
197
|
+
end
|
198
|
+
|
199
|
+
def self.is_ucschar(cp)
|
200
|
+
(0xA0..0xD7FF).include?(cp.ord) ||
|
201
|
+
(0xF900..0xFDCF).include?(cp.ord) ||
|
202
|
+
(0xFDF0..0xFFEF).include?(cp.ord)
|
203
|
+
end
|
204
|
+
|
191
205
|
def self.add_expanded_value(prefix, value, result, max_char, replace_reserved)
|
192
206
|
string_value = convert_native_types(value)
|
193
207
|
max = (max_char != -1) ? [max_char, string_value.length].min : string_value.length
|
@@ -204,8 +218,13 @@ module StdUriTemplate
|
|
204
218
|
reserved_buffer = ''
|
205
219
|
end
|
206
220
|
|
221
|
+
to_append = character
|
222
|
+
if is_surrogate(character) || replace_reserved || is_ucschar(character) || is_iprivate(character)
|
223
|
+
to_append = URI.encode_www_form_component(character)
|
224
|
+
end
|
225
|
+
|
207
226
|
if reserved_buffer
|
208
|
-
reserved_buffer <<
|
227
|
+
reserved_buffer << to_append
|
209
228
|
|
210
229
|
if reserved_buffer.length == 3
|
211
230
|
is_encoded = false
|
@@ -230,22 +249,14 @@ module StdUriTemplate
|
|
230
249
|
elsif character == '%'
|
231
250
|
result << "%25"
|
232
251
|
else
|
233
|
-
|
234
|
-
result << URI.encode_www_form_component(character)
|
235
|
-
else
|
236
|
-
result << character
|
237
|
-
end
|
252
|
+
result << to_append
|
238
253
|
end
|
239
254
|
end
|
240
255
|
end
|
241
256
|
|
242
257
|
if reserved_buffer
|
243
258
|
result << "%25"
|
244
|
-
|
245
|
-
result << URI.encode_www_form_component(reserved_buffer[1..-1])
|
246
|
-
else
|
247
|
-
result << reserved_buffer[1..-1]
|
248
|
-
end
|
259
|
+
result << reserved_buffer[1..-1]
|
249
260
|
end
|
250
261
|
end
|
251
262
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stduritemplate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.50
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrea Peruffo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-01-08 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: std-uritemplate implementation for Ruby
|
14
14
|
email: andrea.peruffo1982@gmail.com
|