This course will be retired on June 1, 2025.
Heads up! To view this whole video, sign in with your Courses account or enroll in your free 7-day trial. Sign In Enroll
Preview
Start a free Courses trial
to watch this video
p2
Code Samples
class Contact
attr_writer :first_name, :middle_name, :last_name
def first_name
@first_name
end
def middle_name
@middle_name
end
def last_name
@last_name
end
def first_last
first_name + " " + last_name
end
def last_first
last_first = last_name
last_first += ", "
last_first += first_name
if !@middle_name.nil?
last_first += " "
last_first += middle_name.slice(0, 1)
last_first += "."
end
last_first
end
def full_name
full_name = first_name
if !@middle_name.nil?
full_name += " "
full_name += middle_name
end
full_name += ' '
full_name += last_name
full_name
end
def to_s(format = 'full_name')
case format
when 'full_name'
full_name
when 'last_first'
last_first
when 'first'
first_name
when 'last'
last_name
else
first_last
end
end
end
jason = Contact.new
jason.first_name = "Jason"
jason.last_name = "Seifer"
puts jason.to_s
puts jason.to_s('full_name')
puts jason.to_s('last_first')
nick = Contact.new
nick.first_name = "Nick"
nick.middle_name = "A"
nick.last_name = "Pettit"
puts nick.to_s('first_last')
Related Discussions
Have questions about this video? Start a discussion with the community and Treehouse staff.
Sign upRelated Discussions
Have questions about this video? Start a discussion with the community and Treehouse staff.
Sign up
Okay, so
we have our contact class here, and
0:00
we've got this full name method
which returns the full name.
0:03
We might want to refer to somebody
by their last name first, and
0:07
then their first name.
0:11
So let's go ahead and
create that method as well.
0:12
We'll call that last_first.
0:19
And we can do that same
thing that we did last time.
0:23
And we can say last_name, or last_first,
starts with the last_name this time.
0:25
And then normally we will add a comma,
0:32
and then we'll add the first name.
0:38
And now we can do the same check for
the middle name.
0:43
We'll see if that's nil.
0:50
And then, if it is not nil,
We will add a space,
0:54
And then we'll take just the first
letter of the middle name.
1:05
And we will add a dot at the end of that.
1:14
And then finally we can return
the last name, first name.
1:19
So I'm gonna save that, and
let's just make sure that works.
1:22
So, we've got our two
contacts in this file.
1:36
Now, let's just run it and
make sure it works okay.
1:39
Okay, that is returning
exactly what we want to.
1:43
So now that we've got two different
ways of displaying these methods,
1:48
let's go ahead and override the
to_s method, so that we can call that.
1:52
So here we go, we called to_s.
2:02
And for right now, we'll say the format
by default is going to be full_name.
2:05
Now we can use a case statement
to see what the format is.
2:13
So, if the format is full_name,
2:20
we can just return the full name
by calling the full name method.
2:24
When it's last name, first name,
we can call the last, first method.
2:33
And then we can do the same thing with
the first name, And the last name.
2:40
And by default, let's just go ahead and
return first and
2:50
last, which is not a method
we have written yet.
2:55
So let's go ahead and write that.
3:00
That does not include the middle names.
3:04
So we can just say first_name,
plus space, plus last name.
3:06
Now, we can call jason.to_s, And
3:17
then we can call this with
either full name, Or last first.
3:23
And we'll try it again on Nick.
3:34
And we know that the others work so let's
just try calling first_last on this one.
3:39
Click down into the console,
clear my screen here, and
3:47
when we run that it appears
to be working correctly.
3:51
Now we don't necessarily need this
to_s method right now, but
3:55
this will come in handy
a little bit later,
3:58
when we're writing the different
parts of our address book.
4:01
You need to sign up for Treehouse in order to download course files.
Sign upYou need to sign up for Treehouse in order to set up Workspace
Sign up