Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

58 lines (50 sloc) 1.636 kB
# encoding: utf-8
#
# = Date Field
#
# The Date field inherits from StructuredField and handles the Date: header
# field in the email.
#
# Sending date to a mail message will instantiate a Mail::Field object that
# has a DateField as it's field type. This includes all Mail::CommonAddress
# module instance methods.
#
# There must be excatly one Date field in an RFC2822 email.
#
# == Examples:
#
# mail = Mail.new
# mail.date = 'Mon, 24 Nov 1997 14:22:01 -0800'
# mail.date #=> #<DateTime: 211747170121/86400,-1/3,2299161>
# mail.date.to_s #=> 'Mon, 24 Nov 1997 14:22:01 -0800'
# mail[:date] #=> '#<Mail::Field:0x180e5e8 @field=#<Mail::DateField:0x180e1c4
# mail['date'] #=> '#<Mail::Field:0x180e5e8 @field=#<Mail::DateField:0x180e1c4
# mail['Date'] #=> '#<Mail::Field:0x180e5e8 @field=#<Mail::DateField:0x180e1c4
#
require 'mail/fields/common/common_date'
module Mail
class DateField < StructuredField
include Mail::CommonDate
FIELD_NAME = 'date'
CAPITALIZED_FIELD = "Date"
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
def encoded
do_encode(CAPITALIZED_FIELD)
end
def decoded
do_decode
end
end
end
Jump to Line
Something went wrong with that request. Please try again.