Ruby in cmd

I am new to Ruby and am trying to run a piece of code from Programming
Ruby in cmd. When i run in cmd >ruby Song.rb, I don’t get any output.
But I can get the result I expected when I run in irb. Can anyone help
me on this?

class Song
def initialize(name , artist, duartion)
@name = name
@artist = artist
@duration = duartion
end

def to_s
 "Song: #{system @name}--#{@artist} (#{@duration})"
end

def name
    @name
end

def artist
    @artist
end

def duration
    @duration
end

end

aSong = Song.new(“NAF”, “AS”, 300)
aSong.to_s
aSong.artist
aSong.name
aSong.duration

maung schrieb:

end
    @artist

aSong.artist
aSong.name
aSong.duration

You need to put a puts/print in front of everything you want to output.
So for example:
puts aSong.to_s

On 6/15/07, maung [email protected] wrote:

I am new to Ruby and am trying to run a piece of code from Programming
Ruby in cmd. When i run in cmd >ruby Song.rb, I don’t get any output.
But I can get the result I expected when I run in irb. Can anyone help
me on this?

As there is no print/puts/etc. statement, this non-output is expected
from the file you wrote when run as a script.

irb is a read-eval-print loop. By default, it prints the output of the
expressions and that’s why you see the output in this case.

Adriano F. wrote:

On 6/15/07, maung [email protected] wrote:

I am new to Ruby and am trying to run a piece of code from Programming
Ruby in cmd. When i run in cmd >ruby Song.rb, I don’t get any output.
But I can get the result I expected when I run in irb. Can anyone help
me on this?

As there is no print/puts/etc. statement, this non-output is expected
from the file you wrote when run as a script.

irb is a read-eval-print loop. By default, it prints the output of the
expressions and that’s why you see the output in this case.

That’s explained it. Thanks a lot. It saved me a lot of time.

Maung

On Jun 15, 2:09 pm, maung [email protected] wrote:

aSong = Song.new(“NAF”, “AS”, 300)
aSong.to_s
aSong.artist
aSong.name
aSong.duration

To see the output, you have to put it out 9^)

try:
puts aSong.to_s
puts aSong.artist
puts aSong.name
puts aSong.duration