Class: Hyde::Util::FormPart

Inherits:
Struct
  • Object
show all
Defined in:
lib/hyde/util/multipart.rb

Overview

Valid element of form data with headers

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#dataObject (readonly)

Data received in the field through form data



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/hyde/util/multipart.rb', line 19

FormPart = Struct.new(:data, :name, :filename,
                      :filetype, :tempfile, :headers) do
  # Is this form part a file or plain data?
  # @return [Boolean]
  def file?
    !tempfile.nil?
  end

  # Decode charset parameter
  def decode(data)
    data = Hyde::Util.unescape_html(data)
    return data unless self.headers['charset']

    data.force_encoding(self.headers['charset']).encode("UTF-8")
  end

  # If FormPart is not a file, simplify to string.
  # @return [FormPart, String]
  def simplify
    file? ? self : decode(self.data)
  end
end

#filenameObject (readonly)

Original name of the sent file



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/hyde/util/multipart.rb', line 19

FormPart = Struct.new(:data, :name, :filename,
                      :filetype, :tempfile, :headers) do
  # Is this form part a file or plain data?
  # @return [Boolean]
  def file?
    !tempfile.nil?
  end

  # Decode charset parameter
  def decode(data)
    data = Hyde::Util.unescape_html(data)
    return data unless self.headers['charset']

    data.force_encoding(self.headers['charset']).encode("UTF-8")
  end

  # If FormPart is not a file, simplify to string.
  # @return [FormPart, String]
  def simplify
    file? ? self : decode(self.data)
  end
end

#filetypeObject (readonly)

MIME-type of the file



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/hyde/util/multipart.rb', line 19

FormPart = Struct.new(:data, :name, :filename,
                      :filetype, :tempfile, :headers) do
  # Is this form part a file or plain data?
  # @return [Boolean]
  def file?
    !tempfile.nil?
  end

  # Decode charset parameter
  def decode(data)
    data = Hyde::Util.unescape_html(data)
    return data unless self.headers['charset']

    data.force_encoding(self.headers['charset']).encode("UTF-8")
  end

  # If FormPart is not a file, simplify to string.
  # @return [FormPart, String]
  def simplify
    file? ? self : decode(self.data)
  end
end

#nameObject (readonly)

name of the form part



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/hyde/util/multipart.rb', line 19

FormPart = Struct.new(:data, :name, :filename,
                      :filetype, :tempfile, :headers) do
  # Is this form part a file or plain data?
  # @return [Boolean]
  def file?
    !tempfile.nil?
  end

  # Decode charset parameter
  def decode(data)
    data = Hyde::Util.unescape_html(data)
    return data unless self.headers['charset']

    data.force_encoding(self.headers['charset']).encode("UTF-8")
  end

  # If FormPart is not a file, simplify to string.
  # @return [FormPart, String]
  def simplify
    file? ? self : decode(self.data)
  end
end

Instance Method Details

#decode(data) ⇒ Object

Decode charset parameter



28
29
30
31
32
33
# File 'lib/hyde/util/multipart.rb', line 28

def decode(data)
  data = Hyde::Util.unescape_html(data)
  return data unless self.headers['charset']

  data.force_encoding(self.headers['charset']).encode("UTF-8")
end

#file?Boolean

Is this form part a file or plain data?

Returns:

  • (Boolean)


23
24
25
# File 'lib/hyde/util/multipart.rb', line 23

def file?
  !tempfile.nil?
end

#headers=(value) ⇒ Object

headers recevied from form data



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/hyde/util/multipart.rb', line 19

FormPart = Struct.new(:data, :name, :filename,
                      :filetype, :tempfile, :headers) do
  # Is this form part a file or plain data?
  # @return [Boolean]
  def file?
    !tempfile.nil?
  end

  # Decode charset parameter
  def decode(data)
    data = Hyde::Util.unescape_html(data)
    return data unless self.headers['charset']

    data.force_encoding(self.headers['charset']).encode("UTF-8")
  end

  # If FormPart is not a file, simplify to string.
  # @return [FormPart, String]
  def simplify
    file? ? self : decode(self.data)
  end
end

#simplifyFormPart, String

If FormPart is not a file, simplify to string.

Returns:



37
38
39
# File 'lib/hyde/util/multipart.rb', line 37

def simplify
  file? ? self : decode(self.data)
end

#tempfile=(value) ⇒ Object

Temporary file for storing sent file data.



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/hyde/util/multipart.rb', line 19

FormPart = Struct.new(:data, :name, :filename,
                      :filetype, :tempfile, :headers) do
  # Is this form part a file or plain data?
  # @return [Boolean]
  def file?
    !tempfile.nil?
  end

  # Decode charset parameter
  def decode(data)
    data = Hyde::Util.unescape_html(data)
    return data unless self.headers['charset']

    data.force_encoding(self.headers['charset']).encode("UTF-8")
  end

  # If FormPart is not a file, simplify to string.
  # @return [FormPart, String]
  def simplify
    file? ? self : decode(self.data)
  end
end