Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > Beginner question on classes on different files

Reply
Thread Tools

Beginner question on classes on different files

 
 
Edgard Riba
Guest
Posts: n/a
 
      01-31-2006
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

--
Posted via http://www.ruby-forum.com/.


 
Reply With Quote
 
 
 
 
Tanner Burson
Guest
Posts: n/a
 
      01-31-2006
------=_Part_7947_2159098.1138724344402
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

On 1/31/06, Edgard Riba <(E-Mail Removed)> wrote:
>
> 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'

--
> Posted via http://www.ruby-forum.com/.
>
>



--
=3D=3D=3DTanner Burson=3D=3D=3D
http://www.velocityreviews.com/forums/(E-Mail Removed)
http://tannerburson.com <---Might even work one day...

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


 
Reply With Quote
 
 
 
 
Stefan Mahlitz
Guest
Posts: n/a
 
      01-31-2006
Edgard Riba wrote:
> 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?


 
Reply With Quote
 
Edgard Riba
Guest
Posts: n/a
 
      01-31-2006
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

--
Posted via http://www.ruby-forum.com/.


 
Reply With Quote
 
Eero Saynatkari
Guest
Posts: n/a
 
      01-31-2006
Edgard Riba wrote:
> 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
> ^


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

--
Posted via http://www.ruby-forum.com/.


 
Reply With Quote
 
Edgard Riba
Guest
Posts: n/a
 
      01-31-2006
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

--
Posted via http://www.ruby-forum.com/.


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
intermediate/beginner question on classes pauldepstein@att.net C++ 1 07-24-2007 08:47 AM
Beginner question? Classes, variables, ... =?UTF-8?B?w4FuZ2VsIEd1dGnDqXJyZXogUm9kcsOtZ3Vleg==?= Python 4 06-28-2006 11:45 AM
No Class at ALL!!! beginner/beginner question =?Utf-8?B?S3VydCBTY2hyb2VkZXI=?= ASP .Net 7 02-03-2005 02:47 PM
Beginner Question - Classes? Janene Digital Photography 5 10-16-2004 10:00 PM
Beginner Help: Joining Multiple classes in multiple files? JHenstay C++ 3 01-11-2004 02:28 PM



Advertisments