trenni 3.1.2 → 3.1.3

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
  SHA1:
3
- metadata.gz: f537bf7c125e2f4e23c5e6ab5126d15370ee4e9a
4
- data.tar.gz: c73fe7e8da34eaab7ab8be0ceec116181d06e462
3
+ metadata.gz: aa84985de8e6e184dda5bad64841cff322410474
4
+ data.tar.gz: d034c682df358c8b3998303618aaf11af09fb9ee
5
5
  SHA512:
6
- metadata.gz: d6355020eedd0017f3c8f5c578df1eb38ae59503e054556f6799a34f4ad51b794b531e552b123cf9a03e6e244db7d13dea52028ce4d3bad1d950cfe92678effb
7
- data.tar.gz: f51f05a10d786b7250939e372efc31c878b6e18f507b707f92b2b11d42da5913ec62adae781a847650083f7c37da5493a8bbc3bce18da3f6879e2c74bc382447
6
+ metadata.gz: 32f5c5fdcef66fe6dd61b98491c437d591a2319f91ccfa3459270a3ab6a2da5870ab25b9f6009fd4e38364da871b54014a1dead76bdd91cd6e8eebd195c2479f
7
+ data.tar.gz: d983427a125eca7ebae611580a2d53132713f6d60cc801f3799df1115cc9b3b2b338a850deaa5798e3243acc2e8dfab7a2ec07ed1d3971eedcd1b59afe187f58
@@ -82,7 +82,25 @@ module Trenni
82
82
  end
83
83
 
84
84
  def query_parameters
85
- @parameters.map{|k,v| "#{escape(k.to_s)}=#{escape(v.to_s)}"}.join('&')
85
+ build_nested_query(@parameters)
86
+ end
87
+
88
+ def build_nested_query(value, prefix = nil)
89
+ case value
90
+ when Array
91
+ value.map { |v|
92
+ build_nested_query(v, "#{prefix}[]")
93
+ }.join("&")
94
+ when Hash
95
+ value.map { |k, v|
96
+ build_nested_query(v, prefix ? "#{prefix}[#{escape(k.to_s)}]" : escape(k.to_s))
97
+ }.reject(&:empty?).join('&')
98
+ when nil
99
+ prefix
100
+ else
101
+ raise ArgumentError, "value must be a Hash" if prefix.nil?
102
+ "#{prefix}=#{escape(value.to_s)}"
103
+ end
86
104
  end
87
105
  end
88
106
 
@@ -19,5 +19,5 @@
19
19
  # THE SOFTWARE.
20
20
 
21
21
  module Trenni
22
- VERSION = "3.1.2"
22
+ VERSION = "3.1.3"
23
23
  end
@@ -29,6 +29,12 @@ RSpec.describe Trenni::URI do
29
29
  end
30
30
  end
31
31
 
32
+ describe Trenni::URI('path', array: [1, 2, 3]) do
33
+ it "encodes array" do
34
+ expect(subject.to_s).to be == "path?array[]=1&array[]=2&array[]=3"
35
+ end
36
+ end
37
+
32
38
  describe Trenni::URI('path_with_underscores/image.jpg') do
33
39
  it "doesn't touch underscores" do
34
40
  expect(subject.to_s).to be == "path_with_underscores/image.jpg"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trenni
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.2
4
+ version: 3.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-30 00:00:00.000000000 Z
11
+ date: 2017-04-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake-compiler