Making separate File

M

Michel Son

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
 
R

Robert Klemme

2008/6/10 Michel Son said:
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

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
 
M

Michel Son

Robert said:
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.
 
A

Axel Etzold

-------- Original-Nachricht --------
Datum: Wed, 11 Jun 2008 01:11:42 +0900
Von: Michel Son <[email protected]>
An: (e-mail address removed)
Betreff: Re: Making separate File
Without opening them. It should seprate the code based on "class"
keyword and storing it in other file using ruby code.

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
 
M

Michel Son

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
 
A

Axel Etzold

-------- Original-Nachricht --------
Datum: Wed, 11 Jun 2008 02:24:45 +0900
Von: Michel Son <[email protected]>
An: (e-mail address removed)
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

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
 

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,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top