uri-builder 0.1.8 → 0.1.10

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: 1c38b14bcda23d719520fbff41c9b080c9a7ee895391da9cba6f6febece54e0b
4
- data.tar.gz: 7c95d5b847ffa2d43af8927f5a49962d0e5c5b322fa92676d7e41bd2d571086b
3
+ metadata.gz: 3e98cc50379efe9f39490d6f078d9632e689f6bed924c98ea9ac4a3adf344b39
4
+ data.tar.gz: 6ec1f457a7c25033ec0659e3a9ea59be1b75f2b4b79ce9dcf84fc9904944b483
5
5
  SHA512:
6
- metadata.gz: 7e109a8c2fb79b0a512377e878da1f9b9c4c8b7475848d772367c1b360b2cc4d951e66860333908da43a169c8605d26202a756fcc201c47f1f29ddcdf6329381
7
- data.tar.gz: 856eeb389865dc50d1e0f81b51d5d264b918b85787a740956521e112ba1ede7808ce35766892a553e1db3dbe588852d4f8cc073d15e4eb66bd40901d459c822d
6
+ metadata.gz: 759651b6f4b0cbc6e00ba8df37a0a73f2fdb66d6ba15eaa75ebe9c332ccc5ccea1539924585350a126cf6b0057f003ee19388301d5aa0683141595eac12414a3
7
+ data.tar.gz: 558482daf87448f326641477e7f98025a61bb4a93b24364172e2b7800f0e87005d08bb4105e83057e1abdd42ddaa6006a2266dd80cdaeb4277a7e800688969ad
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- uri-builder (0.1.8)
4
+ uri-builder (0.1.10)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -26,6 +26,7 @@ PLATFORMS
26
26
  arm64-darwin-21
27
27
  arm64-darwin-22
28
28
  arm64-darwin-23
29
+ arm64-darwin-24
29
30
  x86_64-darwin-20
30
31
 
31
32
  DEPENDENCIES
@@ -2,6 +2,6 @@
2
2
 
3
3
  module URI
4
4
  module Build
5
- VERSION = "0.1.8"
5
+ VERSION = "0.1.10"
6
6
  end
7
7
  end
data/lib/uri/builder.rb CHANGED
@@ -39,8 +39,8 @@ module URI
39
39
 
40
40
  def query(value)
41
41
  value = case value
42
- when Hash
43
- URI.encode_www_form value
42
+ when Hash, Array
43
+ build_query value
44
44
  else
45
45
  value
46
46
  end
@@ -53,6 +53,10 @@ module URI
53
53
  wrap :path, ::File.join(*segments.compact.map(&:to_s).prepend("/"))
54
54
  end
55
55
 
56
+ def trailing_slash
57
+ wrap :path, @uri.path + "/" unless @uri.path.end_with?("/")
58
+ end
59
+
56
60
  def to_s
57
61
  uri.to_s
58
62
  end
@@ -66,6 +70,23 @@ module URI
66
70
  @uri.send "#{property}=", value
67
71
  self
68
72
  end
73
+
74
+ def build_query(params, prefix = nil)
75
+ case params
76
+ when Hash
77
+ params.map { |key, value|
78
+ new_prefix = prefix ? "#{prefix}[#{key}]" : key.to_s
79
+ build_query(value, new_prefix)
80
+ }.reject(&:empty?).join('&')
81
+ when Array
82
+ params.map.with_index { |value, _index|
83
+ new_prefix = "#{prefix}[]"
84
+ build_query(value, new_prefix)
85
+ }.reject(&:empty?).join('&')
86
+ else
87
+ "#{prefix}=#{URI.encode_www_form_component(params.to_s)}"
88
+ end
89
+ end
69
90
  end
70
91
  end
71
92
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uri-builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brad Gessler
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-05-13 00:00:00.000000000 Z
11
+ date: 2024-11-06 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Build URIs via chains
14
14
  email:
@@ -51,7 +51,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
51
51
  - !ruby/object:Gem::Version
52
52
  version: '0'
53
53
  requirements: []
54
- rubygems_version: 3.5.6
54
+ rubygems_version: 3.5.16
55
55
  signing_key:
56
56
  specification_version: 4
57
57
  summary: Build URIs via chains