class Ppl::Format::AddressBook::OneLine

Attributes

table[W]

Public Class Methods

new(colors={}) click to toggle source
# File lib/ppl/format/address_book/one_line.rb, line 5
def initialize(colors={})
  @table = Ppl::Format::Table.new([:id, :name, :email], colors)
end

Public Instance Methods

process(address_book) click to toggle source
# File lib/ppl/format/address_book/one_line.rb, line 9
def process(address_book)
  address_book.contacts.each { |contact| add_row(contact) }
  @table.to_s
end

Private Instance Methods

add_row(contact) click to toggle source
# File lib/ppl/format/address_book/one_line.rb, line 16
def add_row(contact)
  id    = sprintf("%s:", contact.id)
  name  = contact.name
  email = nil

  if !contact.email_addresses.empty?
    email = sprintf("<%s>", choose_email_address(contact).address)
  end

  @table.add_row({
    :id    => id,
    :name  => name,
    :email => email,
  })
end
choose_email_address(contact) click to toggle source
# File lib/ppl/format/address_book/one_line.rb, line 32
def choose_email_address(contact)
  preferred = contact.email_addresses.find { |e| e.preferred }
  if preferred.nil?
    contact.email_addresses.first
  else
    preferred
  end
end