| #! /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) |