module Mail::FieldWithIso2022JpEncoding

Public Class Methods

included(base) click to toggle source
# File lib/mail-iso-2022-jp/field_with_iso_2022_jp_encoding.rb, line 8
def self.included(base)
  base.send :include, Mail::CommonMethodsForField
  base.send :alias_method, :initialize_without_iso_2022_jp_encoding, :initialize
  base.send :alias_method, :initialize, :initialize_with_iso_2022_jp_encoding
  base.send :alias_method, :do_decode_without_iso_2022_jp_encoding, :do_decode
  base.send :alias_method, :do_decode, :do_decode_with_iso_2022_jp_encoding
end

Public Instance Methods

initialize_with_iso_2022_jp_encoding(value = nil, charset = 'utf-8') click to toggle source
# File lib/mail-iso-2022-jp/field_with_iso_2022_jp_encoding.rb, line 16
def initialize_with_iso_2022_jp_encoding(value = nil, charset = 'utf-8')
  if charset.to_s.downcase == 'iso-2022-jp'
    if value.kind_of?(Array)
      value = value.map { |e| encode_with_iso_2022_jp(e, charset) }
    else
      value = encode_with_iso_2022_jp(value, charset)
    end
  end
  initialize_without_iso_2022_jp_encoding(value, charset)
end

Private Instance Methods

do_decode_with_iso_2022_jp_encoding() click to toggle source
# File lib/mail-iso-2022-jp/ruby18/field_with_iso_2022_jp_encoding.rb, line 27
def do_decode_with_iso_2022_jp_encoding
  if charset.to_s.downcase == 'iso-2022-jp'
    value
  else
    do_decode_without_iso_2022_jp_encoding
  end
end
encode_crlf(value) click to toggle source
Calls superclass method
# File lib/mail-iso-2022-jp/field_with_iso_2022_jp_encoding.rb, line 36
def encode_crlf(value)
  if charset.to_s.downcase == 'iso-2022-jp'
    value.force_encoding('ascii-8bit')
  end
  super(value)
end
encode_with_iso_2022_jp(value, charset) click to toggle source
# File lib/mail-iso-2022-jp/field_with_iso_2022_jp_encoding.rb, line 28
def encode_with_iso_2022_jp(value, charset)
  value = Mail::Preprocessor.process(value)
  value = Mail.encoding_to_charset(value, charset)
  value.force_encoding('ascii-8bit')
  value = b_value_encode(value)
  value.force_encoding('ascii-8bit')
end