Method: Protocol::HTTP::URL.decode

Defined in:
lib/protocol/http/url.rb

.decode(string, maximum = 8, symbolize_keys: false) ⇒ Object

TODO use native C extension from Trenni::Reference.



104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# File 'lib/protocol/http/url.rb', line 104

def self.decode(string, maximum = 8, symbolize_keys: false)
	parameters = {}
	
	self.scan(string) do |name, value|
		keys = self.split(name)
		
		if keys.size > maximum
			raise ArgumentError, "Key length exceeded limit!"
		end
		
		if symbolize_keys
			keys.collect!{|key| key.empty? ? nil : key.to_sym}
		end
		
		self.assign(keys, value, parameters)
	end
	
	return parameters
end