class Ppl::Format::Contact::Full
Attributes
email_address_format[W]
phone_number_format[W]
postal_address_format[W]
Public Class Methods
new()
click to toggle source
# File lib/ppl/format/contact/full.rb, line 7 def initialize @email_address_format = Ppl::Format::Contact::EmailAddresses.new @phone_number_format = Ppl::Format::Contact::PhoneNumber.new @postal_address_format = Ppl::Format::Contact::PostalAddresses.new end
Public Instance Methods
process(contact)
click to toggle source
# File lib/ppl/format/contact/full.rb, line 13 def process(contact) @lines = [] first_line = first_line(contact) if first_line != "" @lines.push(first_line) end vitals = vitals(contact) if vitals != "" @lines.push("") @lines.push(vitals) end format_organizations(contact) format_email_addresses(contact) format_phone_numbers(contact) format_postal_addresses(contact) format_urls(contact) return @lines.join("\n") end
Private Instance Methods
choose_first_line_address(contact)
click to toggle source
# File lib/ppl/format/contact/full.rb, line 50 def choose_first_line_address(contact) preferred = contact.email_addresses.find { |e| e.preferred } if preferred.nil? contact.email_addresses.first else preferred end end
first_line(contact)
click to toggle source
# File lib/ppl/format/contact/full.rb, line 38 def first_line(contact) line = "" if !contact.name.nil? line += contact.name.full end email_address = choose_first_line_address(contact) unless email_address.nil? line += " <#{email_address.address}>" end return line end
format_email_addresses(contact)
click to toggle source
# File lib/ppl/format/contact/full.rb, line 75 def format_email_addresses(contact) unless contact.email_addresses.empty? @lines << "" @lines << "Email Addresses:" @lines << @email_address_format.process(contact) end end
format_organizations(contact)
click to toggle source
# File lib/ppl/format/contact/full.rb, line 71 def format_organizations(contact) push_list("Organizations", contact.organizations) end
format_phone_numbers(contact)
click to toggle source
# File lib/ppl/format/contact/full.rb, line 83 def format_phone_numbers(contact) unless contact.phone_numbers.empty? @lines << "" @lines << "Phone Numbers" @lines << @phone_number_format.process(contact) end end
format_postal_addresses(contact)
click to toggle source
# File lib/ppl/format/contact/full.rb, line 91 def format_postal_addresses(contact) unless contact.postal_addresses.empty? @lines << "" @lines << "Postal Addresses" @lines << @postal_address_format.process(contact) end end
format_urls(contact)
click to toggle source
# File lib/ppl/format/contact/full.rb, line 99 def format_urls(contact) push_list("URLs", contact.urls) end
format_vital(name, value)
click to toggle source
# File lib/ppl/format/contact/full.rb, line 67 def format_vital(name, value) return sprintf(" %-12s %s", name, value) end
push_list(label, list, property = nil)
click to toggle source
# File lib/ppl/format/contact/full.rb, line 103 def push_list(label, list, property = nil) return if list.empty? @lines.push("") @lines.push("#{label}:") if list.kind_of?(Array) list.each do |item| string = property.nil? ? item : item.send(property) @lines << " #{string}" end else @lines.push(" #{list}") end end
vitals(contact)
click to toggle source
# File lib/ppl/format/contact/full.rb, line 59 def vitals(contact) vitals = [] if !contact.birthday.nil? vitals.push(format_vital("Birthday", contact.birthday.strftime("%Y-%m-%d"))) end return vitals.join("\n") end