Making separate File

Hello,
The given two classes (TestClass1 and TestClass2) are in a single ruby
code. I want a code that separate both classes and save them into 2
diffrent ruby files.

E.g

Orginal code “test.rb” (contains the classes)
after executing

one file for 1 class “class1.rb”
second file for second class “class2.rb”
and so on…

I would be very thankful to you dear

class TestClass1

 def method1(a,b)
    sum = a + b
    puts sum
 end

 def method2(*c)
    l = c.length
    puts l
 end

end

class TestClass2

 def method1(a,b)
    sum = a + b
    puts sum
 end

 def method2(*c)
    l = c.length
    puts l
 end

end

2008/6/10 Michel S. [email protected]:

second file for second class “class2.rb”
and so on…

I would be very thankful to you dear

For what exactly? I mean, opening two files in an editor and copy +
pasting the code there can’t be that hard, can it?

Cheers

robert

Robert K. wrote:

2008/6/10 Michel S. [email protected]:

second file for second class “class2.rb”
and so on…

I would be very thankful to you dear

For what exactly? I mean, opening two files in an editor and copy +
pasting the code there can’t be that hard, can it?

Cheers

robert

Without opening them. It should seprate the code based on “class”
keyword and storing it in other file using ruby code.

-------- Original-Nachricht --------

Datum: Wed, 11 Jun 2008 01:11:42 +0900
Von: Michel S. [email protected]
An: [email protected]
Betreff: Re: Making separate File

Cheers

robert

Without opening them. It should seprate the code based on “class”
keyword and storing it in other file using ruby code.

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

Michel,

supposing that the original code is in “sourcefile”, and that there is
no text in between
the classes, you can use something like this:

text=IO.readlines(sourcefile)
classes=text.split(/(?=class )/).delete_if{|text|
/^class/.match(text)==nil}
classes.each_with_index{|c_text,i|
f=File.new(“class_file_” + i.to_s + ‘.rb’,“w”)
f.puts c_text
f.close
}

Best regards,

Axel

This error is arises when i run the code:
“private method `split’ called for #Array:0x28402b8 (NoMethodError)”

Actually i am new to ruby thats why i have

-------- Original-Nachricht --------

Datum: Wed, 11 Jun 2008 02:24:45 +0900
Von: Michel S. [email protected]
An: [email protected]
Betreff: Re: Making separate File

This error is arises when i run the code:
“private method `split’ called for #Array:0x28402b8 (NoMethodError)”

Actually i am new to ruby thats why i have


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

Michel,

sorry, that was my fault.
You must change the line with IO.readlines to

text=IO.readlines(sourcefile).to_s

Otherwise, text is an Array, but with to_s, it is converted to a String.
And that’s what the Regular Expression needs.

Best regards,

Axel

On 10.06.2008 19:37, Axel E. wrote:

-------- Original-Nachricht --------

Datum: Wed, 11 Jun 2008 02:24:45 +0900
Von: Michel S. [email protected]
An: [email protected]
Betreff: Re: Making separate File

This error is arises when i run the code:
“private method `split’ called for #Array:0x28402b8 (NoMethodError)”

Actually i am new to ruby thats why i have

sorry, that was my fault.
You must change the line with IO.readlines to

text=IO.readlines(sourcefile).to_s

Or just do

test = IO.read(sourcefile)

Cheers

robert