module HTTP::FormData::Urlencoded::DefaultEncoder
def encode(value, prefix = nil)
-
(String)-
Parameters:
-
prefix(String, nil) -- -
value(Hash, Array, String, nil) --
Other tags:
- Api: - public
def encode(value, prefix = nil) case value when Hash then encode_hash(value, prefix) when Array then encode_array(value, prefix) when nil then prefix.to_s else raise ArgumentError, "value must be a Hash" if prefix.nil? "#{prefix}=#{escape(value)}" end end
def encode_array(value, prefix)
-
(String)-
Other tags:
- Api: - private
def encode_array(value, prefix) if prefix value.map { |v| encode(v, "#{prefix}[]") }.join("&") else encode_pairs(value) end end
def encode_hash(hash, prefix)
-
(String)-
Other tags:
- Api: - private
def encode_hash(hash, prefix) hash.map do |k, v| encode(v, prefix ? "#{prefix}[#{escape(k)}]" : escape(k)) end.reject(&:empty?).join("&") end
def encode_pairs(pairs)
-
(String)-
Other tags:
- Api: - private
def encode_pairs(pairs) pairs.map { |k, v| encode(v, escape(k)) }.reject(&:empty?).join("&") end
def escape(value)
-
(String)-
Other tags:
- Api: - private
def escape(value) URI.encode_www_form_component(value) end