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