Including Module

Discussion in 'Ruby' started by Thangappan Mohana sundaram, May 11, 2009.

  1. I am new to Ruby.
    Is there any way to include the module in normal ruby file?

    For an example,

    Test.rb

    Class Test.rb
    ........
    end

    testing.rb

    object = Test.new # It tells error.
    --
    Posted via http://www.ruby-forum.com/.
    Thangappan Mohana sundaram, May 11, 2009
    #1
    1. Advertising

  2. Thangappan Mohana sundaram

    Ben Lovell Guest

    [Note: parts of this message were removed to make it a legal post.]

    On Mon, May 11, 2009 at 9:42 AM, Thangappan Mohana sundaram <
    > wrote:

    >
    > I am new to Ruby.
    > Is there any way to include the module in normal ruby file?
    >
    > For an example,
    >
    > Test.rb
    >
    > Class Test.rb
    > ........
    > end
    >
    > testing.rb
    >
    > object = Test.new # It tells error.
    >


    In your testing.rb add a require like so:

    require "Test"

    at the top of the file.

    Ben
    Ben Lovell, May 11, 2009
    #2
    1. Advertising

  3. Thangappan Mohana sundaram wrote:
    >
    > I am new to Ruby.
    > Is there any way to include the module in normal ruby file?
    >
    > For an example,
    >
    > Test.rb
    >
    > Class Test.rb
    > ........
    > end
    >
    > testing.rb


    require 'Test'

    > object = Test.new # It tells error.


    Note that Test.rb should say 'class' not 'Class'

    Also, it doesn't really matter what filename you use, but there is a
    common convention that the name of the source file is the lowercased,
    underscored version of the class name. So conventionally you would call
    your file 'test.rb'. For a file containing class MyTestClass you would
    call it my_test_class.rb

    HTH,

    Brian.
    --
    Posted via http://www.ruby-forum.com/.
    Brian Candler, May 11, 2009
    #3
  4. On Monday 11 May 2009, Thangappan Mohana sundaram wrote:
    > |I am new to Ruby.
    > |Is there any way to include the module in normal ruby file?
    > |
    > |For an example,
    > |
    > |Test.rb
    > |
    > |Class Test.rb
    > | ........
    > |end
    > |
    > |testing.rb
    > |
    > |object = Test.new # It tells error.


    Add:

    require 'Test'

    to testing.rb before calling Test.new (assuming that Test.rb and testing.rb
    are in the same directory and that you run ruby from that directory). Also,
    notice that:
    1) you should write class Test, not class Test.rb (note the downcase c in
    class and the absence of the .rb from Test). Class names have nothing in
    common with file names
    2) file names are (I think) case senstive in ruby, so if you call your file
    Test.rb you'll need to require 'Test'; if you call it test.rb you'll need to
    require 'test'. If you're on windows, which is not a case sensitive OS, you
    may be used to a different behaviour (actually, I'm not completely sure of how
    this behaves on windows, as I've never used ruby on it)
    3) modules in ruby are something entirely different (see the documentation for
    the Module class either at http://www.ruby-doc.org/core/ or using ri:
    ri Module.

    For more information you can look at the documentation for the require method
    of module Kernel, either at http://www.ruby-doc.org/core/ or using ri: ri
    Kernel#require. You may also find useful reading the free online version of
    the Pickaxe book (http://www.ruby-doc.org/docs/ProgrammingRuby/) it's a bit
    outdated, but it should be useful all the same.

    I hope this helps

    Stefano
    Stefano Crocco, May 11, 2009
    #4
  5. Sort of similar type problem to what is already posted here.

    I'm two months into Ruby and I can write single file code that purely
    functions from the command line and separate ones that function in
    conjunction with SketchUp. I would like to maximize the
    compartmentalization of modules but am getting stuck.

    My understanding is that files that are called with require need to be
    in the path given when ruby -e 'puts $:' is typed at the command line.
    So, I have a driver file in the pluggins directory in SketchUp in which
    I require 'a_file' but I get a file not found error.

    Error: #<LoadError: No such file to load -- abc>
    C:\Program Files\Google\Google SketchUp 7\Plugins\test.rb:1:in `require'
    C:\Program Files\Google\Google SketchUp 7\Plugins\test.rb:1

    Why isn't the driver program seeing my module file? The module file
    (Abc.rb) is in the C:/Ruby/lib/ruby/site_ruby directory. The driver
    file (test.rb) calls the module on the first line with require 'abc'
    which generates the error.

    Jessica

    --
    Posted via http://www.ruby-forum.com/.
    Jessica Terry, Feb 8, 2010
    #5
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. bukzor
    Replies:
    1
    Views:
    215
    bukzor
    Jan 3, 2008
  2. Ferenc Engard
    Replies:
    2
    Views:
    112
    Ferenc Engard
    Dec 31, 2003
  3. Zev Blut
    Replies:
    3
    Views:
    167
    trans. (T. Onoma)
    Nov 24, 2004
  4. Phil Darnowsky
    Replies:
    1
    Views:
    89
  5. Prince Nez
    Replies:
    3
    Views:
    245
    Robert Klemme
    Aug 18, 2009
Loading...

Share This Page