Class: Doze::Serialization::Entity::WWWFormEncoded
- Inherits:
-
Doze::Serialization::Entity
- Object
- Entity
- Doze::Serialization::Entity
- Doze::Serialization::Entity::WWWFormEncoded
- Includes:
- FormDataHelpers
- Defined in:
- lib/doze/serialization/www_form_encoded.rb
Overview
ripped off largely from Merb::Parse Supports PHP-style nested hashes via foo[baz]=boz
Constant Summary
Constants inherited from Entity
Instance Attribute Summary
Attributes inherited from Entity
#binary_data_length, #encoding, #extra_content_headers, #language, #media_type, #media_type_params
Instance Method Summary collapse
Methods inherited from Doze::Serialization::Entity
#binary_data, #initialize, #object_data
Methods inherited from Entity
#binary_data, #binary_data_stream, #etag, #initialize
Constructor Details
This class inherits a constructor from Doze::Serialization::Entity
Instance Method Details
#deserialize(data) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/doze/serialization/www_form_encoded.rb', line 24 def deserialize(data) query = {} for pair in data.split(/[&;] */n) key, value = unescape(pair).split('=',2) next if key.nil? if key.include?('[') normalize_params(query, key, value) else query[key] = value end end query end |
#serialize(value, prefix = nil) ⇒ Object
13 14 15 16 17 18 19 20 21 22 |
# File 'lib/doze/serialization/www_form_encoded.rb', line 13 def serialize(value, prefix=nil) case value when Array value.map {|v| serialize(v, "#{prefix}[]")}.join("&") when Hash value.map {|k,v| serialize(v, prefix ? "#{prefix}[#{escape(k)}]" : escape(k))}.join("&") else "#{prefix}=#{escape(value)}" end end |