Module: HTTPX::Transcoder::Form
- Defined in:
- lib/httpx/transcoder/form.rb
Defined Under Namespace
Modules: Decoder
Classes: Encoder
Constant Summary
collapse
- PARAM_DEPTH_LIMIT =
32
Class Method Summary
collapse
Class Method Details
.decode(response) ⇒ Object
58
59
60
61
62
63
64
65
66
67
68
69
|
# File 'lib/httpx/transcoder/form.rb', line 58
def decode(response)
content_type = response.content_type.mime_type
case content_type
when "application/x-www-form-urlencoded"
Decoder
when "multipart/form-data"
Multipart::Decoder.new(response)
else
raise Error, "invalid form mime type (#{content_type})"
end
end
|
.encode(form) ⇒ Object
50
51
52
53
54
55
56
|
# File 'lib/httpx/transcoder/form.rb', line 50
def encode(form)
if multipart?(form)
Multipart::Encoder.new(form)
else
Encoder.new(form)
end
end
|
.multipart?(data) ⇒ Boolean
71
72
73
74
75
76
77
|
# File 'lib/httpx/transcoder/form.rb', line 71
def multipart?(data)
data.any? do |_, v|
Multipart::MULTIPART_VALUE_COND.call(v) ||
(v.respond_to?(:to_ary) && v.to_ary.any?(&Multipart::MULTIPART_VALUE_COND)) ||
(v.respond_to?(:to_hash) && v.to_hash.any? { |_, e| Multipart::MULTIPART_VALUE_COND.call(e) })
end
end
|