Bummer! This is just a preview. You need to be signed in with a Basic account to view the entire video.
Contact Class: Part 24:04 with Jason Seifer
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')
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 two string 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 two string 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 up