Class: HTTP::FormData::Multipart::Param

Inherits:
Object
  • Object
show all
Includes:
Readable
Defined in:
lib/http/form_data/multipart/param.rb,
sig/http.rbs

Overview

Utility class to represent multi-part chunks

Instance Method Summary collapse

Methods included from Readable

#read, #rewind, #size, #to_s

Constructor Details

#initialize(name, value) ⇒ Param

Initializes body part with headers and data

Parameters:

  • name (Object)
  • value (Object)


32
33
34
35
36
# File 'lib/http/form_data/multipart/param.rb', line 32

def initialize(name, value)
  @name = name.to_s
  @part = value.is_a?(Part) ? value : Part.new(value)
  @io   = CompositeIO.new [header, @part, CRLF]
end

Instance Method Details

#headerString

Builds the MIME header for this part

Returns:

  • (String)


44
45
46
47
48
# File 'lib/http/form_data/multipart/param.rb', line 44

def header
  header = "Content-Disposition: form-data; #{parameters}#{CRLF}"
  header << "Content-Type: #{@part.content_type}#{CRLF}" if @part.content_type
  header << CRLF
end

#parametersString

Builds Content-Disposition parameters string

Returns:

  • (String)


54
55
56
57
58
# File 'lib/http/form_data/multipart/param.rb', line 54

def parameters
  params = "name=#{@name.inspect}"
  params << "; filename=#{@part.filename.inspect}" if @part.filename
  params
end