Class: Mail::DateField

Inherits:
StructuredField show all
Includes:
CommonDate
Defined in:
lib/mail/fields/date_field.rb

Constant Summary

FIELD_NAME =
'date'
CAPITALIZED_FIELD =
"Date"

Constants included from Patterns

Patterns::ATOM_UNSAFE, Patterns::CONTROL_CHAR, Patterns::CRLF, Patterns::FIELD_BODY, Patterns::FIELD_LINE, Patterns::FIELD_PREFIX, Patterns::FIELD_SPLIT, Patterns::FWS, Patterns::HEADER_LINE, Patterns::HEADER_SPLIT, Patterns::PHRASE_UNSAFE, Patterns::QP_SAFE, Patterns::QP_UNSAFE, Patterns::TEXT, Patterns::TOKEN_UNSAFE, Patterns::WSP

Instance Method Summary (collapse)

Methods included from CommonDate

#date_time, #default, #parse

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

- (DateField) initialize(value = nil, charset = 'utf-8')



34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/mail/fields/date_field.rb', line 34

def initialize(value = nil, charset = 'utf-8')
  self.charset = charset
  if value.blank?
    value = ::DateTime.now.strftime('%a, %d %b %Y %H:%M:%S %z')
  else
    value = strip_field(FIELD_NAME, value)
    value.to_s.gsub!(/\(.*?\)/, '')
    value = ::DateTime.parse(value.to_s.squeeze(" ")).strftime('%a, %d %b %Y %H:%M:%S %z')
  end
  super(CAPITALIZED_FIELD, value, charset)
rescue ArgumentError => e
  raise e unless "invalid date"==e.message
end

Instance Method Details

- (Object) decoded



52
53
54
# File 'lib/mail/fields/date_field.rb', line 52

def decoded
  do_decode
end

- (Object) encoded



48
49
50
# File 'lib/mail/fields/date_field.rb', line 48

def encoded
  do_encode(CAPITALIZED_FIELD)
end