Beginner question on classes on different files

E

Edgard Riba

Hi,
I'm beginning to work with ruby and I have a conceptual problem. Let's
say I have two files:

hello2.rb:
class Hello2
attr_reader :msg
def initialize
@msg = "Hello, World2"
end
end

and hello.rb

require 'hello2.rb'
class Hello
attr_reader :msg
def initialize
@msg = "Hello, World"
end
end
h = Hello.new()
h2 = Hello2.new()
puts h2.msg
puts h.msg
print "Press RETURN"
$stdin.gets

This is obviously a conceptual excercise. I want to use class
"Hello2" in my hello.rb code. However this doesn't compile.

What is wrong with this code? How is something like this done in Ruby?
Thansk, Edgard
 
T

Tanner Burson

------=_Part_7947_2159098.1138724344402
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Hi,
I'm beginning to work with ruby and I have a conceptual problem. Let's
say I have two files:

hello2.rb:
class Hello2
attr_reader :msg
def initialize
@msg =3D "Hello, World2"
end
end

and hello.rb

require 'hello2.rb'
class Hello
attr_reader :msg
def initialize
@msg =3D "Hello, World"
end
end
h =3D Hello.new()
h2 =3D Hello2.new()
puts h2.msg
puts h.msg
print "Press RETURN"
$stdin.gets

This is obviously a conceptual excercise. I want to use class
"Hello2" in my hello.rb code. However this doesn't compile.

What is wrong with this code? How is something like this done in Ruby?
Thansk, Edgard


Drop the .rb from you're require line. So it should be
require 'hello2'

--


--
=3D=3D=3DTanner Burson=3D=3D=3D
(e-mail address removed)
http://tannerburson.com <---Might even work one day...

------=_Part_7947_2159098.1138724344402--
 
S

Stefan Mahlitz

Edgard said:
Hi,
I'm beginning to work with ruby and I have a conceptual problem. Let's
say I have two files:

hello2.rb:
class Hello2
attr_reader :msg
def initialize
@msg = "Hello, World2"
end
end

and hello.rb

require 'hello2.rb'
class Hello
attr_reader :msg
def initialize
@msg = "Hello, World"
end
end
h = Hello.new()
h2 = Hello2.new()
puts h2.msg
puts h.msg
print "Press RETURN"
$stdin.gets

This is obviously a conceptual excercise. I want to use class
"Hello2" in my hello.rb code. However this doesn't compile.

What is wrong with this code? How is something like this done in Ruby?

Works for me under linux and windows.

Prints
Hello, World2
Hello, World
Press RETURN

What exactly does not work?
 
E

Edgard Riba

Hi Stefan,

I'm using FreeRuby, and I'm getting intermitent errors.

This is the error I get
ruby c:/ruby/samples/hello.rb
c:/ruby/samples/hello.rb:11: parse error, unexpected tIDENTIFIER,
expecting $
h2 = Hello2.new()^Mputs h2.msg^M
^

However, I placed semi-colons (';') after each line and everything
compiled fine and ran with expected results:

h = Hello.new();
h2 = Hello2.new();

puts h2.msg;
puts h.msg;
print "Press RETURN";
$stdin.gets;


Seems like some kind of problem with the parser. Maybe I have
something setup wrong with respect to the end of line character or
something like that...

Thanks,
Edgard
 
E

Eero Saynatkari

Edgard said:
Hi Stefan,

I'm using FreeRuby, and I'm getting intermitent errors.

This is the error I get
c:/ruby/samples/hello.rb:11: parse error, unexpected tIDENTIFIER,
expecting $
h2 = Hello2.new()^Mputs h2.msg^M
^

This looks like UNIX-style linebreaks (\n)
that Windows does not interpret correctly.
However, I placed semi-colons (';') after each line and everything
compiled fine and ran with expected results:

h = Hello.new();
h2 = Hello2.new();

puts h2.msg;
puts h.msg;
print "Press RETURN";
$stdin.gets;


Seems like some kind of problem with the parser. Maybe I have
something setup wrong with respect to the end of line character or
something like that...

There may be a setting in your editor that toggles
the linebreak mode. I actually do not recall this
having been a problem but it has been a while since
I did any ruby development on Windows.
Thanks,
Edgard


E
 
E

Edgard Riba

Hi Eero,
This looks like UNIX-style linebreaks (\n)
that Windows does not interpret correctly.

This is what it was... I don't know why they were in there instead of
CRLF pairs, but I found a way in FreeRide to show the end of line
markers and was able to remove al single CR, and everything compiles
fine now.

Thanks to all,
Edgard
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,734
Messages
2,569,441
Members
44,832
Latest member
GlennSmall

Latest Threads

Top