Bummer! This is just a preview. You need to be signed in with a Basic account to view the entire video.
The to_s method2:16 with Jason Seifer
A common idiom that Ruby programmers use when writing classes is to define a `to_s` method, which tells Ruby how to print out a class.
class Name def initialize(title, first_name, middle_name, last_name) @title = title @first_name = first_name @middle_name = middle_name @last_name = last_name end def full_name first_name + ' ' + middle_name + ' ' + last_name end def to_s full_name end end
A common idiom that Ruby programmers use when writing classes and 0:00 instances is to use the to_s method. 0:04 This method is a convention, and 0:08 is called by Ruby when an object wants to be formatted as a string. 0:10 Let's see how that works now with the name class using workspaces. 0:16 Okay, so here's our name class and 0:21 it's just like before except I took out the attribute reader for 0:24 first and middle name and put it back to what we have before with full name. 0:29 Now let's take a look at what happens when we print out just the name so 0:33 I'm gonna write ruby name.rb. 0:38 And we see that we get this funny little format right here, 0:43 which is the name of the class and its address in memory. 0:48 Whenever we print something out to the screen using the puts method, 0:53 internally Ruby is calling to string on it or to_s. 0:59 And we can override that in our classes if we want to. 1:04 [BLANK_AUDIO] 1:07 So if we look here, we've got this to_s method. 1:15 And let's just have this print out the full name with the title. 1:19 [BLANK_AUDIO] 1:23 Now when to_s is called is should print out the full name. 1:28 And there we go. 1:34 It can be very useful when you're working with your own classes to 1:36 define a to_s method. 1:40 Another method that we could use if we wanna find out 1:44 a little bit more about the object we're working with is the inspect method. 1:46 Inspect will tell you the internal state of the object that you’re working with. 1:53 So here we can see the same thing as before, it’s the name class. 1:59 And the place in memory or the object ID. 2:04 And we also have a listing of all of the internal instance variables 2:07 of the class as well as their values. 2:13
You need to sign up for Treehouse in order to download course files.Sign up