class Ppl::Command::Bday
Attributes
list_format[W]
show_format[W]
Public Instance Methods
execute(input, output)
click to toggle source
# File lib/ppl/command/bday.rb, line 13 def execute(input, output) action = determine_action(input) send(action, input, output) end
options(parser, options)
click to toggle source
# File lib/ppl/command/bday.rb, line 9 def options(parser, options) parser.banner = "usage: ppl birthday <contact> [<date>]" end
Private Instance Methods
determine_action(input)
click to toggle source
# File lib/ppl/command/bday.rb, line 21 def determine_action(input) if input.arguments[0].nil? :list_birthdays elsif input.arguments[1].nil? :show_birthday else :set_birthday end end
list_birthdays(input, output)
click to toggle source
# File lib/ppl/command/bday.rb, line 31 def list_birthdays(input, output) address_book = @storage.load_address_book birthday_list = @list_format.process(address_book) output.line(birthday_list) end
set_birthday(input, output)
click to toggle source
# File lib/ppl/command/bday.rb, line 53 def set_birthday(input, output) contact_id = input.arguments.shift birthday = input.arguments.shift if contact_id.nil? raise Ppl::Error::IncorrectUsage, "No contact specified" end contact = @storage.require_contact(contact_id) begin date = Date.parse birthday rescue ArgumentError raise Ppl::Error::IncorrectUsage, "Invalid date '#{birthday}'" end contact.birthday = date @storage.save_contact(contact) end
show_birthday(input, output)
click to toggle source
# File lib/ppl/command/bday.rb, line 37 def show_birthday(input, output) contact_id = input.arguments.shift if contact_id.nil? raise Ppl::Error::IncorrectUsage, "No contact specified" end contact = @storage.require_contact(contact_id) birthday = @show_format.process(contact) if birthday != "" output.line(birthday) true else false end end