trenni 3.1.2 → 3.1.3

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