Question: RUBY PROGRAMMING Here is the specification for a phone book. A phone book consists of a collection of entries. An entry associates a persons name

RUBY PROGRAMMING

Here is the specification for a phone book. A phone book consists of a collection of entries. An entry associates a persons name (a string) with a set of one or more phone contacts. The entries in a phone book are unique and serve as the primary key. Well use name entry to refer to the entry named by name.

A phone contact consists of a phone number and a label. The contacts in each entry have unique keys. We can look up an entry in the phone book by a persons name, and we can look up a contact in an entry by label.

Here are the public methods provided by the PhoneBook class:

add(name)

Adds a new empty entry under name and returns it if no such an entry exists; returns None otherwise.

add(name, phone_number, label)

Finds the name entry or creates a new one if none exists, then adds or updates a label contact under this entry; returns the entry.

delete(name)

Removes entry and returns True if the name entry exists and is empty; else returns False.

delete(name, label)

Removes contact and returns it if it exists (i.e., a label contact in the name entry); else returns nil.

has(name)

Returns True if there is an entry for name; returns False otherwise.

find(name)

Returns entry under name if it exists; else returns nil.

find(name, label)

Returns the label contact under entry name if it exists; else returns nil.

to_s

Returns a string representing all of entries, sorted by name.

The phone books entries are represented as Entry objects. Here are the Entry classs principal methods:

add_contact(phone_number, label)

Adds phone_number if the contacts label is not present; otherwise updates the number under label.

has_contact(label)

Returns True if there is a contact under label; else returns False.

delete_contact(label)

Deletes the contact under label if it exists; else returns None. empty() Returns True if empty; else returns False.

to_s

Return a string representing all the contacts sorted by label

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!