Class: Mail::ContentDispositionField

Inherits:
StructuredField show all
Defined in:
lib/mail/fields/content_disposition_field.rb

Constant Summary

FIELD_NAME =
'content-disposition'
CAPITALIZED_FIELD =
'Content-Disposition'

Constants included from Constants

Mail::Constants::ASTERISK, Mail::Constants::ATOM_UNSAFE, Mail::Constants::B_VALUES, Mail::Constants::CAPITAL_M, Mail::Constants::COLON, Mail::Constants::CONTROL_CHAR, Mail::Constants::CR, Mail::Constants::CRLF, Mail::Constants::CR_ENCODED, Mail::Constants::EMPTY, Mail::Constants::ENCODED_VALUE, Mail::Constants::EQUAL_LF, Mail::Constants::FIELD_BODY, Mail::Constants::FIELD_LINE, Mail::Constants::FIELD_PREFIX, Mail::Constants::FIELD_SPLIT, Mail::Constants::FULL_ENCODED_VALUE, Mail::Constants::FWS, Mail::Constants::HEADER_LINE, Mail::Constants::HEADER_SPLIT, Mail::Constants::HYPHEN, Mail::Constants::LF, Mail::Constants::LF_ENCODED, Mail::Constants::NULL_SENDER, Mail::Constants::PHRASE_UNSAFE, Mail::Constants::QP_SAFE, Mail::Constants::QP_UNSAFE, Mail::Constants::Q_VALUES, Mail::Constants::SPACE, Mail::Constants::TEXT, Mail::Constants::TOKEN_UNSAFE, Mail::Constants::UNDERSCORE, Mail::Constants::WSP

Instance Method Summary collapse

Methods inherited from StructuredField

#charset, #charset=, #default, #errors

Methods included from Utilities

#atom_safe?, #bracket, #capitalize_field, #constantize, #dasherize, #dquote, #escape_paren, #map_lines, #map_with_index, #match_to_s, #paren, #quote_atom, #quote_phrase, #quote_token, #token_safe?, #unbracket, #underscoreize, #unparen, #unquote, #uri_escape, #uri_parser, #uri_unescape

Methods included from CommonField

#default, #field_length, #name, #name=, #responsible_for?, #to_s, #value, #value=

Constructor Details

#initialize(value = nil, charset = 'utf-8') ⇒ ContentDispositionField

Returns a new instance of ContentDispositionField



10
11
12
13
14
15
16
# File 'lib/mail/fields/content_disposition_field.rb', line 10

def initialize(value = nil, charset = 'utf-8')
  self.charset = charset
  ensure_filename_quoted(value)
  super(CAPITALIZED_FIELD, strip_field(FIELD_NAME, value), charset)
  self.parse
  self
end

Instance Method Details

#decodedObject



60
61
62
63
64
65
66
67
# File 'lib/mail/fields/content_disposition_field.rb', line 60

def decoded
  if parameters.length > 0
    p = "; #{parameters.decoded}"
  else
    p = ""
  end
  "#{disposition_type}" + p
end

#disposition_typeObject



28
29
30
# File 'lib/mail/fields/content_disposition_field.rb', line 28

def disposition_type
  element.disposition_type
end

#elementObject



24
25
26
# File 'lib/mail/fields/content_disposition_field.rb', line 24

def element
  @element ||= Mail::ContentDispositionElement.new(value)
end

#encodedObject

TODO: Fix this up



51
52
53
54
55
56
57
58
# File 'lib/mail/fields/content_disposition_field.rb', line 51

def encoded
  if parameters.length > 0
    p = ";\r\n\s#{parameters.encoded}\r\n"
  else
    p = "\r\n"
  end
  "#{CAPITALIZED_FIELD}: #{disposition_type}" + p
end

#filenameObject



38
39
40
41
42
43
44
45
46
47
48
# File 'lib/mail/fields/content_disposition_field.rb', line 38

def filename
  case
  when !parameters['filename'].blank?
    @filename = parameters['filename']
  when !parameters['name'].blank?
    @filename = parameters['name']
  else 
    @filename = nil
  end
  @filename
end

#parametersObject



32
33
34
35
36
# File 'lib/mail/fields/content_disposition_field.rb', line 32

def parameters
  @parameters = ParameterHash.new
  element.parameters.each { |p| @parameters.merge!(p) }
  @parameters
end

#parse(val = value) ⇒ Object



18
19
20
21
22
# File 'lib/mail/fields/content_disposition_field.rb', line 18

def parse(val = value)
  unless val.blank?
    @element = Mail::ContentDispositionElement.new(val)
  end
end