[#362083] Teaching Programming Languages (including Ruby) — Samuel Williams <space.ship.traveller@...>

Hello,

20 messages 2010/05/02

[#362098] Main working window for Ruby is DOS? — Kaye Ng <sbstn26@...>

I know nothing about programming and am not a techy person, so please

16 messages 2010/05/03

[#362116] School teacher still at it learning programming language — Hilary Bailey <my77elephants@...>

Now I while glimpsing at the beauty of Ruby, there is the software of

11 messages 2010/05/03

[#362166] Something I expected to work, but didn't! — Kurtis Rainbolt-greene <kurtisrainboltgreene@...>

irb(main):001:0> x = 2

11 messages 2010/05/04

[#362215] for-in vs. map closures — Mike Austin <mike_ekim@...>

I was experimenting with closures and JavaScript's and Ruby's

11 messages 2010/05/05

[#362286] ri on sqlite — Intransition <transfire@...>

What do others think of a creating a new ri tool which uses a SQLite

17 messages 2010/05/06

[#362341] ease of porting (translating) ruby to C (vs. python)? — bwv549 <jtprince@...>

In a very small bioinformatics group I know of, they are deciding

17 messages 2010/05/07

[#362375] Strings iteration — Viorel <viorelvladu@...>

I have some names like aaxxbbyy where xx is '01'..'10' and yy is also

14 messages 2010/05/08

[#362425] Any future for curses applications/toolkits like rbcurse ? — "R. Kumar" <sentinel.2001@...>

Have apps moved over to the web (or GUI) totally ? Will there be any

21 messages 2010/05/10
[#362441] Re: Any future for curses applications/toolkits like rbcurse ? — botp <botpena@...> 2010/05/10

On Mon, May 10, 2010 at 2:13 PM, R. Kumar <sentinel.2001@gmx.com> wrote:

[#362448] Re: Any future for curses applications/toolkits like rbcurse ? — "R. Kumar" <sentinel.2001@...> 2010/05/10

interface and/or the installation itself is terrible.

[#362458] Re: Any future for curses applications/toolkits like rbcurse ? — botp <botpena@...> 2010/05/10

On Mon, May 10, 2010 at 10:28 PM, R. Kumar <sentinel.2001@gmx.com> wrote:

[#362460] Re: Any future for curses applications/toolkits like rbcurse ? — "R. Kumar" <sentinel.2001@...> 2010/05/10

botp wrote:

[#362463] Re: Any future for curses applications/toolkits like rbcurse ? — "R. Kumar" <sentinel.2001@...> 2010/05/10

Strange. I cant push a gem even after yanking.

[#362452] Unit Test of method calling system() - how? — Martin Hansen <mail@...>

How can I unit test the two methods:

16 messages 2010/05/10

[#362498] In Ruby, can the coerce() method know what operator it is th — Jian Lin <blueskybreeze@...>

In Ruby, it seems that a lot of coerce() help can be done by

12 messages 2010/05/11
[#362546] Re: In Ruby, can the coerce() method know what operator it is th — Caleb Clausen <vikkous@...> 2010/05/11

On 5/10/10, Jian Lin <blueskybreeze@gmail.com> wrote:

[#362611] Re: In Ruby, can the coerce() method know what operator it is th — Colin Bartlett <colinb2r@...> 2010/05/12

On Tue, May 11, 2010 at 4:46 PM, Caleb Clausen <vikkous@gmail.com> wrote:

[#362657] Asynchronous HTTP request — Daniel DeLorme <dan-ml@...42.com>

Does anyone know how to do the following, but without threads, purely

28 messages 2010/05/13

[#362718] Range on strings. — Vikrant Chaudhary <nasa42@...>

Hi,

13 messages 2010/05/14

[#362787] class best way for getters ? — unbewusst.sein@... (Une B騅ue)

i have a class "HFSFile" initialized by a parsed string

12 messages 2010/05/15

[#362979] curl library? — Xeno Campanoli / Eskimo North and Gmail <xeno.campanoli@...>

Two questions:

14 messages 2010/05/18
[#362980] Re: curl library? — Xeno Campanoli / Eskimo North and Gmail <xeno.campanoli@...> 2010/05/18

On 10-05-18 02:35 PM, Xeno Campanoli / Eskimo North and Gmail wrote:

[#362982] Re: curl library? — Luis Parravicini <lparravi@...> 2010/05/18

On Tue, May 18, 2010 at 6:56 PM, Xeno Campanoli / Eskimo North and

[#362984] Re: curl library? — Xeno Campanoli / Eskimo North and Gmail <xeno.campanoli@...> 2010/05/18

Well, I got that -dev thing installed with apt-get, and then I tried again and

[#363027] Retrieve instance — Walle Wallen <walle.sthlm@...>

Quick question. Can I somehow retrieve the instance of the class Test in

11 messages 2010/05/19

[#363076] Scrape javascript content — Phil Mcdonnell <phil.a.mcdonnell@...>

I'm trying to scrape a page that hides some data behind a javascript

11 messages 2010/05/20

[#363115] OMG, why are there so many Strings in ObjectSpace! — timr <timrandg@...>

I was playing around looking at ObjectSpace in irb and was astounded

14 messages 2010/05/21

[#363225] Redefine a Class? — Mark T <paradisaeidae@...>

Currently this raises: superclass mismatch for class Soda (TypeError)

12 messages 2010/05/25

[#363240] Funny IO.select behaviour — Dennis Nedry <dennis@...>

I've been debugging my full screen console ruby editor.

13 messages 2010/05/25

[#363348] Ruby as Client Side Language in Web Browser (replacing JS) — "Simone R." <k5mmx@...>

Hi everybody,

17 messages 2010/05/27

[#363412] A better way to write this function? — Jason Lillywhite <jason.lillywhite@...>

Here is my attempt at Newton's second law in Ruby:

14 messages 2010/05/28

[#363417] Interrupting the evaluation of a ruby script — Emmanuel Emmanuel <emmanuel.bacry@...>

This is my problem :

12 messages 2010/05/28
[#363447] Re: Interrupting the evaluation of a ruby script — Branden Tanga <branden.tanga@...> 2010/05/28

Emmanuel Emmanuel wrote:

[#363483] Re: Interrupting the evaluation of a ruby script — Emmanuel Emmanuel <emmanuel.bacry@...> 2010/05/29

[#363426] A complete beginners question — Ant Walliams <anthonywainwright@...>

Hi there,

19 messages 2010/05/28

[#363432] Dynamic SVG with Ruby/Tk — Yotta Meter <spam@...>

The example I'm looking for in regards to ruby/SVG differs from the

14 messages 2010/05/28

[#363467] Date.today problem on linux with Ruby 1.8.6 — Jarmo Pertman <jarmo.p@...>

Hello.

10 messages 2010/05/29

[#363524] enumerator problem in 1.9.1 — Bug Free <amberarrow@...>

The following line:

19 messages 2010/05/31
[#363528] Re: enumerator problem in 1.9.1 — botp <botpena@...> 2010/05/31

On Mon, May 31, 2010 at 9:04 AM, Bug Free <amberarrow@yahoo.com> wrote:

[#363533] Re: enumerator problem in 1.9.1 — Robert Klemme <shortcutter@...> 2010/05/31

2010/5/31 botp <botpena@gmail.com>:

Re: Ruby Newbie...Classes and Objects, oh my!

From: Robert Klemme <shortcutter@...>
Date: 2010-05-24 17:15:05 UTC
List: ruby-talk #363212
On 24.05.2010 18:42, fuglyducky wrote:
> On May 24, 8:57 am, Robert Dober <robert.do...@gmail.com> wrote:
>> On Mon, May 24, 2010 at 4:30 PM, fuglyducky <fuglydu...@gmail.com> wrote:
>>> I'm very new to Ruby and I'm trying to create a program that will take
>>> one text file and dump each line into an array. Then I take a second
>>> file and dump that into a string. Then I insert the string into the
>>> array. The code for these pieces work. However, for flexibility I want/
>>> need to be able to use OO methods and that is where I seem to hit a
>>> wall. Not sure what I am supposed to do or how to call it. Below is my
>>> code, any input you may have would be greatly appreciated!!!
>>> ###############################################################
>>> class XMLProcessing
>>>        def initialize(array_file, string_file, output_file)
>>>                @array_file = array_file
>>>                @string_file = string_file
>>>                @output_file = output_file
>>>        end
>>>        def lines_to_array
>>>                # Dump each line from text file into array
>>>                File.open(@array_file).each do |line|
>>>                        my_array << line
>> This is a local variable, uninitialized for that matter
>> try
>>       @my_array = []
>>       File.open...
>>               @my_array << line
>>       end
>>
>> However, you could also simply do a
>>      @my_array = File.readlines( @array_file ).map( &:chomp )
>> or the more explicit (and in Rubies < 1.9 necessary )
>>      @my_array = File.readlines( @array_file ).map{ |line| line.chomp }>                end
>>>        end
>>>        def file_to_string
>>>                # Create string from text file
>>>                @my_string_file = File.open(@string_file)
>>>                my_string = @my_string_file.read
>> Same here
>>              @my_string = ...
>>
>>>        end
>>>        def string_into_array
>>>                # Insert string into array
>>>                my_array.insert((my_array.length - 1), my_string)
>> and here too
>> @my_array>        end
>>
>>>        def new_array_to_file
>>>                # Dump the array to a text file
>>>                newFile = File.new(@output_file, "w+")
>>>                my_array.each { |element| newFile.puts element }
>> change here too
>>            @my_array
>>
>>>                print 'New file created: ' + (@output_file)
>>>        end
>>> end
>>> stat_xml = XMLProcessing.new("Stat.Template.xml", "Seg.Template.xml",
>>> "stat.xml.txt")
>> Now just call the methods you want to execute on stat_xml as e.g.
>> stat_xml.file_to_string
>> ..
>> ..
>>
>> I do not think your design is ideal, calling all those external method
>> calls for intermediate computations(1), but for a beginner it is
>> pretty nicely structured code.
>>
>> HTH
>> R.
>>
>> (1) But there might be reasons invisible to YHS.
>>
>>
>>
>>> ###############################################################
>> --
>> The best way to predict the future is to invent it.
>> -- Alan Kay
> 
> Wow...thanks for the response!!! I'm not a programmer for a developer
> by any means. I'm a tester that needed a quick (and hopefully not too
> dirty) way of creating the files I need. The reason I wanted to call
> all of the submethods was because I need to be able to create a random
> number of some of the individual files before I dump them into the
> array. I thought that in the main body of the code I would script it
> out to call that particular method. This is all pretty new to me...is
> that bad form?

Hm, difficult where to start.  If I read your code properly you have 
three file names as inputs and want to create the concatenation of the 
two first files as the third file.  On shell level you could simply do

$ cat f1 f2 > f3

There is no Ruby programming needed.  Even if you want to do that in 
Ruby, there is not really a need for new classes you can do this in just 
a few lines in a function.

# Concat all files given as second, third etc. argument
# to a file with name provided as first argument
def file_concat(out, *in)
   File.open out, "w" do |io|
     in.each do |file_in|
       File.foreach file_in do |line|
         io.puts line
       end
     end
   end
end

file_concat("stat.xml.txt", "Stat.Template.xml", "Seg.Template.xml")

This code has the advantage over your solution with the Array that it 
easily processes arbitrarily large files because you do not have to hold 
the complete output file in memory.

A new class of your own is probably only worthwhile if you have to do 
more complex processing on the file's content.  Even if you create a 
class you should do the processing like shown in the first example, i.e. 
not hold the complete files in memory, e.g.

class XMLProcessing
	def initialize(array_file, string_file, output_file)
		@array_file = array_file
		@string_file = string_file
		@output_file = output_file
	end

   def process
     File.open @output_file, "w" do |io|
       [@array_file, @string_file].each do |file_in|
         File.foreach file_in do |line|
           io.puts line
         end
       end
     end
   end
end


Kind regards

	robert

-- 
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/

In This Thread