Where to place class files?


#1

I wrote my own class definition and placed it inside a file called
mynewclass.rb. I then placed this file inside
/usr/local/lib/ruby/1.8/mynewclass/.

The mynewclass.rb file has

require ‘rubygems’
require ‘uuidtools’
require ‘xml_struct’

inside of it.

When I create a new ruby script and use

require ‘mynewclass/mynewclass’

I get a load error from custom_require.rb saying there is no such file
to
load for uuidtools and xml_struct, however if I launch irb and do a
require
‘mynewclass/mynewclass’ I can use the class just fine with no load
errors.

Is there a different method I should use to go about this the correct,
and
hopefully functional way?

  • Nathan

#2

Dear Nathan,

in what directory did you save the new script ?

Assuming that it is saved as /home/nathan/new_script.rb,

if you write

require “mynewclass/mynewclass”

into it, the error message you get is due to the fact that
you don’t have a /home/nathan/mynewclass subdirectory
with a mynewclass.rb file in it.
So you could give the full pathname, or save the mynewclass.rb
script in the same directory as new_script.rb .

Alternatively, you could set additional environment variables
for ruby:

http://www.rubycentral.com/book/rubyworld.html

It sounds to me that you get this error because you expect
Ruby to behave like Java … right?

If so, could you help me on a Ruby/Java problem for which
I got no response so far ?

http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/256316

Thank you very much!

Best regards,

Axel


#3

The new_script.rb is saved in my home directory, however the
mynewclass.rbfile is saved in the site_ruby directory that is
recommended for placing end
user created modules and extensions to ruby. I dont’ have a problem
with
new_script.rb being able to load mynewclass.rb. The problem is that
inside
of mynewclass.rb it also requires a few ruby gems, and those ruby gems
are
what I am getting load errors for. The gems and mynewclass.rb are both
in
directories included in the default ruby load path, which is why I am
quite
confused at the errors generated.

Sorry, I wish I could help, but I have never coded in Java! I have
some
limited knowledge of web apps implemented in Java and I believe you have
to
download the required libraries, place them in a lib directory, and then
some how you should be able to create a configuration file that points
to
the libraries. Have only seen implementations for servlet and jsp code
though, so I’m not sure how that all works with a normal Java
application.