| #! /usr/bin/env ruby |
| |
| require './addressbook_pb' |
| require 'pry' |
| |
| # Iterates though all people in the AddressBook and prints info about them. |
| def list_people(address_book) |
| address_book.people.each do |person| |
| puts "Person ID: #{person.id}" |
| puts " Name: #{person.name}" |
| if person.email != "" |
| puts " Email: #{person.email}" |
| end |
| |
| person.phones.each do |phone_number| |
| type = |
| case phone_number.type |
| when :MOBILE |
| "Mobile phone" |
| when :HOME |
| "Home phone" |
| when :WORK |
| "Work phone" |
| end |
| puts " #{type} #: #{phone_number.number}" |
| end |
| end |
| end |
| |
| # Main procedure: Reads the entire address book from a file and prints all |
| # the information inside. |
| if ARGV.length != 1 |
| puts "Usage: #{$PROGRAM_NAME} ADDRESS_BOOK_FILE" |
| exit(-1) |
| end |
| |
| # Read the existing address book. |
| f = File.open(ARGV[0], "rb") |
| address_book = Tutorial::AddressBook.decode(f.read) |
| f.close |
| |
| list_people(address_book) |