extlib 0.9.4 → 0.9.5
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of extlib might be problematic. Click here for more details.
- data/lib/extlib/hash.rb +25 -14
- data/lib/extlib/mash.rb +0 -5
- data/lib/extlib/version.rb +1 -1
- metadata +2 -2
data/lib/extlib/hash.rb
CHANGED
@@ -91,31 +91,42 @@ class Hash
|
|
91
91
|
# :phones => ['111-111-1111', '222-222-2222']
|
92
92
|
# }
|
93
93
|
# }.to_params
|
94
|
-
# #=> "name=Bob&address[city]=Ruby Central&address[phones]=111-111-
|
94
|
+
# #=> "name=Bob&address[city]=Ruby Central&address[phones][]=111-111-1111&address[phones][]=222-222-2222&address[street]=111 Ruby Ave."
|
95
95
|
def to_params
|
96
|
-
params =
|
96
|
+
params = self.map { |k,v| normalize_param(k,v) }.join
|
97
|
+
params.chop! # trailing &
|
98
|
+
params
|
99
|
+
end
|
100
|
+
|
101
|
+
# @param key<Object> The key for the param.
|
102
|
+
# @param value<Object> The value for the param.
|
103
|
+
#
|
104
|
+
# @return <String> This key value pair as a param
|
105
|
+
#
|
106
|
+
# @example normalize_param(:name, "Bob") #=> "name=Bob&"
|
107
|
+
def normalize_param(key, value)
|
108
|
+
param = ''
|
97
109
|
stack = []
|
98
110
|
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
111
|
+
if value.is_a?(Array)
|
112
|
+
param << value.map { |element| normalize_param("#{key}[]", element) }.join
|
113
|
+
elsif value.is_a?(Hash)
|
114
|
+
stack << [key,value]
|
115
|
+
else
|
116
|
+
param << "#{key}=#{value}&"
|
105
117
|
end
|
106
118
|
|
107
119
|
stack.each do |parent, hash|
|
108
|
-
hash.each do |
|
109
|
-
if
|
110
|
-
stack << ["#{parent}[#{
|
120
|
+
hash.each do |key, value|
|
121
|
+
if value.is_a?(Hash)
|
122
|
+
stack << ["#{parent}[#{key}]", value]
|
111
123
|
else
|
112
|
-
|
124
|
+
param << normalize_param("#{parent}[#{key}]", value)
|
113
125
|
end
|
114
126
|
end
|
115
127
|
end
|
116
128
|
|
117
|
-
|
118
|
-
params
|
129
|
+
param
|
119
130
|
end
|
120
131
|
|
121
132
|
# @param *allowed<Array[(String, Symbol)]> The hash keys to include.
|
data/lib/extlib/mash.rb
CHANGED
@@ -83,11 +83,6 @@ class Mash < Hash
|
|
83
83
|
indices.collect {|key| self[convert_key(key)]}
|
84
84
|
end
|
85
85
|
|
86
|
-
# @return <Mash> A duplicate of this mash.
|
87
|
-
def dup
|
88
|
-
Mash.new(self)
|
89
|
-
end
|
90
|
-
|
91
86
|
# @param hash<Hash> The hash to merge with the mash.
|
92
87
|
#
|
93
88
|
# @return <Mash> A new mash with the hash values merged in.
|
data/lib/extlib/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: extlib
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sam Smoot
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-08-
|
12
|
+
date: 2008-08-26 00:00:00 +03:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|