class Ppl::Command::Email
Attributes
custom_format[W]
email_service[W]
list_format[W]
show_format[W]
Public Instance Methods
execute(input, output)
click to toggle source
# File lib/ppl/command/email.rb, line 27 def execute(input, output) action = determine_action(input) send(action, input, output) true end
options(parser, options)
click to toggle source
# File lib/ppl/command/email.rb, line 11 def options(parser, options) parser.banner = "usage: ppl email <contact> [<email-address>]" parser.on("-d", "--delete", "delete email address") do options[:delete] = true end parser.on("-p", "--preferred", "mark address as preferred") do options[:preferred] = true end parser.on("-P", "--not-preferred", "mark address as not preferred") do options[:preferred] = false end parser.on("--format <format>", "specify a custom output format") do |f| options[:format] = f end end
Private Instance Methods
determine_action(input)
click to toggle source
# File lib/ppl/command/email.rb, line 35 def determine_action(input) if input.arguments.length < 1 :list_address_book_email_addresses elsif input.arguments.length < 2 :show_contact_email_addresses elsif input.options[:delete] :remove_email_address_from_contact else :update_contact_email_addresses end end
format_contact(contact, options)
click to toggle source
# File lib/ppl/command/email.rb, line 75 def format_contact(contact, options) if options[:format].nil? @show_format.process(contact) else @custom_format.format = options[:format] contact.email_addresses.map { |e| @custom_format.process(e) }.join("\n") end end
list_address_book_email_addresses(input, output)
click to toggle source
# File lib/ppl/command/email.rb, line 47 def list_address_book_email_addresses(input, output) address_book = @storage.load_address_book output.line(@list_format.process(address_book)) end
new_email_address?(contact, email_address)
click to toggle source
# File lib/ppl/command/email.rb, line 71 def new_email_address?(contact, email_address) (contact.email_addresses.select { |ea| ea.address == email_address }).empty? end
remove_email_address_from_contact(input, output)
click to toggle source
# File lib/ppl/command/email.rb, line 57 def remove_email_address_from_contact(input, output) contact = @storage.require_contact(input.arguments[0]) @email_service.remove(contact, input.arguments[1]) end
show_contact_email_addresses(input, output)
click to toggle source
# File lib/ppl/command/email.rb, line 52 def show_contact_email_addresses(input, output) contact = @storage.require_contact(input.arguments[0]) output.line(format_contact(contact, input.options)) end
update_contact_email_addresses(input, output)
click to toggle source
# File lib/ppl/command/email.rb, line 62 def update_contact_email_addresses(input, output) contact = @storage.require_contact(input.arguments[0]) if new_email_address?(contact, input.arguments[1]) @email_service.add(contact, input.arguments[1], input.options) else @email_service.update(contact, input.arguments[1], input.options) end end