class Mail::ContentTypeField
Constants
- CAPITALIZED_FIELD
- FIELD_NAME
Public Class Methods
generate_boundary()
click to toggle source
# File lib/mail/fields/content_type_field.rb, line 82 def ContentTypeField.generate_boundary "--==_mimepart_#{Mail.random_tag}" end
new(value = nil, charset = 'utf-8')
click to toggle source
Calls superclass method
# File lib/mail/fields/content_type_field.rb, line 10 def initialize(value = nil, charset = 'utf-8') self.charset = charset if value.class == Array @main_type = value[0] @sub_type = value[1] @parameters = ParameterHash.new.merge!(value.last) else @main_type = nil @sub_type = nil @parameters = nil value = strip_field(FIELD_NAME, value) end value = ensure_filename_quoted(value) super(CAPITALIZED_FIELD, value, charset) self.parse self end
with_boundary(type)
click to toggle source
# File lib/mail/fields/content_type_field.rb, line 78 def ContentTypeField.with_boundary(type) new("#{type}; boundary=#{generate_boundary}") end
Public Instance Methods
attempt_to_clean()
click to toggle source
# File lib/mail/fields/content_type_field.rb, line 44 def attempt_to_clean # Sanitize the value, handle special cases @element ||= Mail::ContentTypeElement.new(sanatize(value)) rescue # All else fails, just get the MIME media type @element ||= Mail::ContentTypeElement.new(get_mime_type(value)) end
decoded()
click to toggle source
# File lib/mail/fields/content_type_field.rb, line 120 def decoded if parameters.length > 0 p = "; #{parameters.decoded}" else p = "" end "#{content_type}" + p end
default()
click to toggle source
# File lib/mail/fields/content_type_field.rb, line 64 def default decoded end
element()
click to toggle source
# File lib/mail/fields/content_type_field.rb, line 36 def element begin @element ||= Mail::ContentTypeElement.new(value) rescue attempt_to_clean end end
encoded()
click to toggle source
TODO: Fix this up
# File lib/mail/fields/content_type_field.rb, line 111 def encoded if parameters.length > 0 p = ";\r\n\s#{parameters.encoded}" else p = "" end "#{CAPITALIZED_FIELD}: #{content_type}#{p}\r\n" end
filename()
click to toggle source
# File lib/mail/fields/content_type_field.rb, line 98 def filename case when parameters['filename'] @filename = parameters['filename'] when parameters['name'] @filename = parameters['name'] else @filename = nil end @filename end
main_type()
click to toggle source
# File lib/mail/fields/content_type_field.rb, line 52 def main_type @main_type ||= element.main_type end
parameters()
click to toggle source
# File lib/mail/fields/content_type_field.rb, line 70 def parameters unless @parameters @parameters = ParameterHash.new element.parameters.each { |p| @parameters.merge!(p) } end @parameters end
parse(val = value)
click to toggle source
# File lib/mail/fields/content_type_field.rb, line 28 def parse(val = value) unless Utilities.blank?(val) self.value = val @element = nil element end end
string()
click to toggle source
# File lib/mail/fields/content_type_field.rb, line 60 def string "#{main_type}/#{sub_type}" end
Also aliased as: content_type
stringify(params)
click to toggle source
# File lib/mail/fields/content_type_field.rb, line 94 def stringify(params) params.map { |k,v| "#{k}=#{Encodings.param_encode(v)}" }.join("; ") end
sub_type()
click to toggle source
# File lib/mail/fields/content_type_field.rb, line 56 def sub_type @sub_type ||= element.sub_type end
value()
click to toggle source
# File lib/mail/fields/content_type_field.rb, line 86 def value if @value.class == Array "#{@main_type}/#{@sub_type}; #{stringify(parameters)}" else @value end end