How to split ruby code into multiple files

C

Cedric Vicenti

Hi guys,

my ruby code is now a long file and I'd like to split it into different
smaller files so that I could reuse them in different programs and make
my original code smaller at the same time.

One file should be used as the master and will reference the code of the
other files.

Is it feasible? Do I have to create some sort of a #include command or
create function objects (I just need a code split, I do not want to
create objects).

thank you.
 
T

Tim Hunter

Cedric said:
Hi guys,

my ruby code is now a long file and I'd like to split it into different
smaller files so that I could reuse them in different programs and make
my original code smaller at the same time.

One file should be used as the master and will reference the code of the
other files.

Is it feasible? Do I have to create some sort of a #include command or
create function objects (I just need a code split, I do not want to
create objects).

thank you.

Use the require method to require individual files.
 
T

Thomas Adam

Hi guys,

my ruby code is now a long file and I'd like to split it into different
smaller files so that I could reuse them in different programs and make
my original code smaller at the same time.

One file should be used as the master and will reference the code of the
other files.

Is it feasible? Do I have to create some sort of a #include command or
create function objects (I just need a code split, I do not want to
create objects).

You should create Modules and allow them to be mixins to your Classes
via the "include" word. Example:

Module M
def some_func
"I am some_func"
end
end

class A
include M
end

foo = A.new
puts a.report

If "Module M" were in its own file, you coud then just "require" that
file, for instance.

-- Thomas Adam
 
7

7stud --

Cedric said:
Hi guys,

my ruby code is now a long file and I'd like to split it into different
smaller files so that I could reuse them in different programs and make
my original code smaller at the same time.

1) Here's a simple scheme:


my_lib.rb
--------
def greet
puts "hello world"
end

def show(num)
puts num
end



some_program.rb
---------------
require 'my_lib.rb'

greet #hello world
show(10) #10


But doing it that way can cause problems in this situation:


some_program.rb
---------------
require 'my_lib.rb'

def greet()
puts "hi"
end


greet #hi
show(10) #10

The greet method in some_program.rb hides the greet method in my_lib.rb.
So you can do this instead:

my_lib.rb
--------
module Lib
def Lib.greet
puts "hello world"
end

def Lib.show(num)
puts num
end
end



some_program.rb
---------------
require 'my_lib.rb'

def greet()
puts "Hi"
end

Lib.greet
Lib.show(10)

greet
 
T

Thufir

You should create Modules and allow them to be mixins to your Classes
via the "include" word.

Would this be sorta equivalent to creating a package in Java?


-Thufir
 
T

Thomas Adam

Would this be sorta equivalent to creating a package in Java?

Ish. But unlike packages, you get a whole lot more with the use of
Modules. I certainly wouldn't try and liken them to packages though.

-- Thomas Adam
 

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

No members online now.

Forum statistics

Threads
473,768
Messages
2,569,574
Members
45,048
Latest member
verona

Latest Threads

Top