blob: fa633615aa17f972a6da0d681c4829d44e10a6d6 [file] [log] [blame]
Maciej Litwiniukff5007f2023-03-07 09:32:18 -08001#! /usr/bin/env ruby
2
3require './addressbook_pb'
4require 'pry'
5
6# Iterates though all people in the AddressBook and prints info about them.
7def list_people(address_book)
8 address_book.people.each do |person|
9 puts "Person ID: #{person.id}"
10 puts " Name: #{person.name}"
11 if person.email != ""
12 puts " Email: #{person.email}"
13 end
14
15 person.phones.each do |phone_number|
16 type =
17 case phone_number.type
18 when :MOBILE
19 "Mobile phone"
20 when :HOME
21 "Home phone"
22 when :WORK
23 "Work phone"
24 end
25 puts " #{type} #: #{phone_number.number}"
26 end
27 end
28end
29
30# Main procedure: Reads the entire address book from a file and prints all
31# the information inside.
32if ARGV.length != 1
33 puts "Usage: #{$PROGRAM_NAME} ADDRESS_BOOK_FILE"
34 exit(-1)
35end
36
37# Read the existing address book.
38f = File.open(ARGV[0], "rb")
39address_book = Tutorial::AddressBook.decode(f.read)
40f.close
41
42list_people(address_book)