forked from protocolbuffers/protobuf
-
Notifications
You must be signed in to change notification settings - Fork 0
/
list_people.rb
executable file
·42 lines (36 loc) · 987 Bytes
/
list_people.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#! /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)