Module: HTTPX::Transcoder::Multipart

Defined in:
lib/httpx/transcoder/multipart.rb,
lib/httpx/transcoder/multipart/part.rb,
lib/httpx/transcoder/multipart/decoder.rb,
lib/httpx/transcoder/multipart/encoder.rb,
lib/httpx/transcoder/multipart/mime_type_detector.rb,
sig/transcoder/multipart.rbs

Defined Under Namespace

Modules: MimeTypeDetector, Part, _MultipartInput Classes: Decoder, Encoder, FilePart

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.encode(form_data) ⇒ Object



35
36
37
# File 'lib/httpx/transcoder/multipart.rb', line 35

def encode(form_data)
  Encoder.new(form_data)
end

.multipart?(form_data) ⇒ Boolean

Returns:

  • (Boolean)


12
13
14
15
16
17
18
# File 'lib/httpx/transcoder/multipart.rb', line 12

def multipart?(form_data)
  form_data.any? do |_, v|
    multipart_value?(v) ||
      (v.respond_to?(:to_ary) && v.to_ary.any? { |av| multipart_value?(av) }) ||
      (v.respond_to?(:to_hash) && v.to_hash.any? { |_, e| multipart_value?(e) })
  end
end

.multipart_value?(value) ⇒ Boolean

Returns:

  • (Boolean)


20
21
22
23
24
25
# File 'lib/httpx/transcoder/multipart.rb', line 20

def multipart_value?(value)
  value.respond_to?(:read) ||
    (value.is_a?(Hash) &&
      value.key?(:body) &&
      (value.key?(:filename) || value.key?(:content_type)))
end

.normalize_keys(key, value, transcoder = self, &block) ⇒ Object



27
28
29
30
31
32
33
# File 'lib/httpx/transcoder/multipart.rb', line 27

def normalize_keys(key, value, transcoder = self, &block)
  if multipart_value?(value)
    block.call(key.to_s, value)
  else
    HTTPX::Transcoder.normalize_keys(key, value, transcoder, &block)
  end
end

Instance Method Details

#self?.encodeMultipart::Encoder

Parameters:

  • form_data (multipart_input)

Returns:



19
# File 'sig/transcoder/multipart.rbs', line 19

def self?.encode: (multipart_input form_data) -> Multipart::Encoder

#self?.multipart?Boolean

Parameters:

  • form_data (urlencoded_input, multipart_input)

Returns:

  • (Boolean)


21
# File 'sig/transcoder/multipart.rbs', line 21

def self?.multipart?: (urlencoded_input | multipart_input form_data) -> bool

#self?.multipart_value?Boolean

Parameters:

  • value (multipart_nested_value)

Returns:

  • (Boolean)


23
# File 'sig/transcoder/multipart.rbs', line 23

def self?.multipart_value?: (multipart_nested_value value) -> bool

#self?.normalize_keysvoid

This method returns an undefined value.



25
# File 'sig/transcoder/multipart.rbs', line 25

def self?.normalize_keys: [U] (_ToS key, _ToAry[untyped] | _ToHash[_ToS, untyped] | untyped value, ?_KeyNormalizer transcoder) { (String, ?untyped) -> U } -> U