# IO output problem

**URL:** <https://www.ruby-forum.com/t/io-output-problem/79437>\
**Category:** Ruby\
**Created:** [December 15, 2006, 2:35am UTC](https://www.ruby-forum.com/t/io-output-problem/79437 "2006-12-15T02:35:46Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![kevin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/2acd7d/32.png) [@kevin](https://www.ruby-forum.com/u/kevin)\
**Post date:** [December 15, 2006, 2:35am UTC](https://www.ruby-forum.com/t/io-output-problem/79437/1 "2006-12-15T02:35:46Z")

</div>

## I run one of examples of Programming Ruby, code as follows:

class Sone  
…  
end

## song = Sone.new(…, …, …) song.inspect song.to\_s

why I can’t see output? where is output of inspect and to\_s ?  
It outputs to somewhere else? IO object ?

thank you in advance

---

<div class="post-metadata">

**Author:** ![kevin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/2acd7d/32.png) [@kevin](https://www.ruby-forum.com/u/kevin)\
**Post date:** [December 15, 2006, 2:39am UTC](https://www.ruby-forum.com/t/io-output-problem/79437/2 "2006-12-15T02:39:46Z")

</div>

First, Song is misspelled to Sone, it seems.

To answer your question, use puts song.to\_s to display output. Puts is  
technically a method of Kernel, but you can use it as just puts anywhere  
in your Ruby program.

Gets does (kind of) the opposite of puts and “gets” what a user at the  
command line typed.

Dan

---

<div class="post-metadata">

**Author:** ![kevin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/2acd7d/32.png) [@kevin](https://www.ruby-forum.com/u/kevin)\
**Post date:** [December 15, 2006, 2:39am UTC](https://www.ruby-forum.com/t/io-output-problem/79437/3 "2006-12-15T02:39:46Z")

</div>

Hi –

On Fri, 15 Dec 2006, Kevin wrote:

> why I can’t see output? where is output of inspect and to\_s ?  
> It outputs to somewhere else? IO object ?

inspect and to\_s just produce strings. To see them, you have to print  
them 🙂 In fact, there are some handy methods for this:

p song # automatically calls inspect  
puts song # automatically calls to\_s

Also, if you are working in irb (the interactive Ruby terminal),  
you’ll see the value of every expression you type in. So in irb, if  
your expression evaluates to a string, you’ll see the string without  
having to explicitly ask for it to be printed.

David

---

<div class="post-metadata">

**Author:** ![kevin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/2acd7d/32.png) [@kevin](https://www.ruby-forum.com/u/kevin)\
**Post date:** [December 15, 2006, 3:15am UTC](https://www.ruby-forum.com/t/io-output-problem/79437/4 "2006-12-15T03:15:50Z")

</div>

It’s been a while since I’ve read that example but for some reason, I  
remember thinking it was just an example to show how Ruby’s object  
orientation worked… not a real functional example. Perhaps it was  
and I completely missed it. Dunno…

---

<div class="post-metadata">

**Author:** ![kevin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/2acd7d/32.png) [@kevin](https://www.ruby-forum.com/u/kevin)\
**Post date:** [December 15, 2006, 2:55am UTC](https://www.ruby-forum.com/t/io-output-problem/79437/5 "2006-12-15T02:55:47Z")

</div>

I understand now, thank you both of you

---

<div class="post-metadata">

**Author:** ![kevin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/2acd7d/32.png) [@kevin](https://www.ruby-forum.com/u/kevin)\
**Post date:** [December 15, 2006, 3:45am UTC](https://www.ruby-forum.com/t/io-output-problem/79437/6 "2006-12-15T03:45:54Z")

</div>

Hi –

On Fri, 15 Dec 2006, Daniel F. wrote:

> To answer your question, use puts song.to\_s to display output.

Or just puts song. to\_s will be called automatically:

irb(main):001:0\> o = Object.new  
=\> #Object:0xb7f06840  
irb(main):002:0\> def o.to\_s; “Here I am!”; end  
=\> nil  
irb(main):003:0\> puts o  
Here I am!

🙂

David

---

<div class="post-metadata">

**Author:** ![kevin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/2acd7d/32.png) [@kevin](https://www.ruby-forum.com/u/kevin)\
**Post date:** [December 15, 2006, 3:19am UTC](https://www.ruby-forum.com/t/io-output-problem/79437/7 "2006-12-15T03:19:50Z")

</div>

I think it’s from Programming Ruby: The Pragmatic Programmer’s Guide.  
[http://www.rubycentral.com/book/tut\_threads.html](http://www.rubycentral.com/book/tut_threads.html)

dan
