1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
require "uri"
module HTTP
module FormData
# `application/x-www-form-urlencoded` form data.
class Urlencoded
# @param [#to_h, Hash] data form data key-value Hash
def initialize(data)
@data = FormData.ensure_hash data
end
# Returns content to be used for HTTP request body.
#
# @return [String]
def to_s
::URI.encode_www_form @data
end
# Returns MIME type to be used for HTTP request `Content-Type` header.
#
# @return [String]
def content_type
"application/x-www-form-urlencoded"
end
# Returns form data content size to be used for HTTP request
# `Content-Length` header.
#
# @return [Fixnum]
def content_length
to_s.bytesize
end
end
end
end
|