Class: HTTParty::Request::Body

Inherits:
Object
  • Object
show all
Defined in:
lib/httparty/request/body.rb

Instance Method Summary collapse

Constructor Details

#initialize(params, query_string_normalizer: nil, force_multipart: false) ⇒ Body

Returns a new instance of Body.



12
13
14
15
16
# File 'lib/httparty/request/body.rb', line 12

def initialize(params, query_string_normalizer: nil, force_multipart: false)
  @params = params
  @query_string_normalizer = query_string_normalizer
  @force_multipart = force_multipart
end

Instance Method Details

#boundaryObject



26
27
28
# File 'lib/httparty/request/body.rb', line 26

def boundary
  @boundary ||= MultipartBoundary.generate
end

#callObject



18
19
20
21
22
23
24
# File 'lib/httparty/request/body.rb', line 18

def call
  if params.respond_to?(:to_hash)
    multipart? ? generate_multipart : normalize_query(params)
  else
    params
  end
end

#multipart?Boolean

Returns:



30
31
32
# File 'lib/httparty/request/body.rb', line 30

def multipart?
  params.respond_to?(:to_hash) && (force_multipart || has_file?(params))
end

#prepared_partsObject



43
44
45
46
47
48
# File 'lib/httparty/request/body.rb', line 43

def prepared_parts
  normalized_params = params.flat_map { |key, value| HashConversions.normalize_keys(key, value) }
  normalized_params.map do |key, value|
    [key, value, file?(value)]
  end
end

#streaming?Boolean

Returns:



34
35
36
# File 'lib/httparty/request/body.rb', line 34

def streaming?
  multipart? && has_file?(params)
end

#to_streamObject



38
39
40
41
# File 'lib/httparty/request/body.rb', line 38

def to_stream
  return nil unless streaming?
  StreamingMultipartBody.new(prepared_parts, boundary)
end