Class: Mail::CommonAddressField
- Inherits:
-
NamedStructuredField
- Object
- CommonField
- StructuredField
- NamedStructuredField
- Mail::CommonAddressField
- Defined in:
- lib/mail/fields/common_address_field.rb
Overview
:nodoc:
Direct Known Subclasses
BccField, CcField, FromField, ReplyToField, ResentBccField, ResentCcField, ResentFromField, ResentSenderField, ResentToField, ReturnPathField, SenderField, ToField
Instance Attribute Summary
Attributes inherited from CommonField
#charset, #errors, #name, #value
Class Method Summary collapse
Instance Method Summary collapse
- #<<(val) ⇒ Object
- #address ⇒ Object
-
#addresses ⇒ Object
Returns the address string of all the addresses in the address list.
-
#addrs ⇒ Object
Returns the actual address objects in the address list.
-
#decoded_group_addresses ⇒ Object
Returns a list of decoded group addresses.
- #default ⇒ Object
-
#display_names ⇒ Object
Returns the display name of all the addresses in the address list.
-
#each ⇒ Object
Allows you to iterate through each address object in the address_list.
-
#element ⇒ Object
:nodoc:.
-
#encode_if_needed(val, val_charset = charset) ⇒ Object
:nodoc:.
-
#encoded_group_addresses ⇒ Object
Returns a list of encoded group addresses.
-
#formatted ⇒ Object
Returns the formatted string of all the addresses in the address list.
-
#group_addresses ⇒ Object
Returns the addresses that are part of groups.
-
#group_names ⇒ Object
Returns the name of all the groups in a string.
-
#groups ⇒ Object
Returns a hash of group name => address strings for the address list.
-
#initialize(value = nil, charset = nil) ⇒ CommonAddressField
constructor
A new instance of CommonAddressField.
Methods inherited from CommonField
#decoded, #encoded, #parse, parse, #responsible_for?, #singular?, #to_s
Constructor Details
#initialize(value = nil, charset = nil) ⇒ CommonAddressField
Returns a new instance of CommonAddressField.
22 23 24 |
# File 'lib/mail/fields/common_address_field.rb', line 22 def initialize(value = nil, charset = nil) super encode_if_needed(value, charset), charset end |
Class Method Details
.singular? ⇒ Boolean
18 19 20 |
# File 'lib/mail/fields/common_address_field.rb', line 18 def self.singular? true end |
Instance Method Details
#<<(val) ⇒ Object
94 95 96 97 98 99 100 101 102 103 |
# File 'lib/mail/fields/common_address_field.rb', line 94 def <<(val) case when val.nil? raise ArgumentError, "Need to pass an address to <<" when Utilities.blank?(val) self else self.value = [self.value, encode_if_needed(val)].reject { |a| Utilities.blank?(a) }.join(", ") end end |
#address ⇒ Object
41 42 43 |
# File 'lib/mail/fields/common_address_field.rb', line 41 def address addresses.first end |
#addresses ⇒ Object
Returns the address string of all the addresses in the address list
46 47 48 49 |
# File 'lib/mail/fields/common_address_field.rb', line 46 def addresses list = element.addresses.map { |a| a.address } Mail::AddressContainer.new(self, list) end |
#addrs ⇒ Object
Returns the actual address objects in the address list
64 65 66 67 |
# File 'lib/mail/fields/common_address_field.rb', line 64 def addrs list = element.addresses Mail::AddressContainer.new(self, list) end |
#decoded_group_addresses ⇒ Object
Returns a list of decoded group addresses
80 81 82 |
# File 'lib/mail/fields/common_address_field.rb', line 80 def decoded_group_addresses groups.map { |k,v| v.map { |a| a.decoded } }.flatten end |
#default ⇒ Object
37 38 39 |
# File 'lib/mail/fields/common_address_field.rb', line 37 def default addresses end |
#display_names ⇒ Object
Returns the display name of all the addresses in the address list
58 59 60 61 |
# File 'lib/mail/fields/common_address_field.rb', line 58 def display_names list = element.addresses.map { |a| a.display_name } Mail::AddressContainer.new(self, list) end |
#each ⇒ Object
Allows you to iterate through each address object in the address_list
31 32 33 34 35 |
# File 'lib/mail/fields/common_address_field.rb', line 31 def each element.addresses.each do |address| yield(address) end end |
#element ⇒ Object
:nodoc:
26 27 28 |
# File 'lib/mail/fields/common_address_field.rb', line 26 def element # :nodoc: @element ||= AddressList.new(value) end |
#encode_if_needed(val, val_charset = charset) ⇒ Object
:nodoc:
105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
# File 'lib/mail/fields/common_address_field.rb', line 105 def encode_if_needed(val, val_charset = charset) #:nodoc: case val when nil val # Need to join arrays of addresses into a single value when Array val.compact.map { |a| encode_if_needed a, val_charset }.join(', ') # Pass through UTF-8; encode non-UTF-8. else utf8_if_needed(val, val_charset) || Encodings.encode_non_usascii(val, val_charset) end end |
#encoded_group_addresses ⇒ Object
Returns a list of encoded group addresses
85 86 87 |
# File 'lib/mail/fields/common_address_field.rb', line 85 def encoded_group_addresses groups.map { |k,v| v.map { |a| a.encoded } }.flatten end |
#formatted ⇒ Object
Returns the formatted string of all the addresses in the address list
52 53 54 55 |
# File 'lib/mail/fields/common_address_field.rb', line 52 def formatted list = element.addresses.map { |a| a.format } Mail::AddressContainer.new(self, list) end |
#group_addresses ⇒ Object
Returns the addresses that are part of groups
75 76 77 |
# File 'lib/mail/fields/common_address_field.rb', line 75 def group_addresses decoded_group_addresses end |
#group_names ⇒ Object
Returns the name of all the groups in a string
90 91 92 |
# File 'lib/mail/fields/common_address_field.rb', line 90 def group_names # :nodoc: element.group_names end |
#groups ⇒ Object
Returns a hash of group name => address strings for the address list
70 71 72 |
# File 'lib/mail/fields/common_address_field.rb', line 70 def groups element.addresses_grouped_by_group end |