From: Robert Klemme Date: 2009-01-28T07:37:44+09:00 Subject: Re: read a ruby script like you would read a text file On 27.01.2009 19:46, Mmcolli00 Mom wrote: > Do you know if this is possible: > I want to read each ruby script in a directory (btw there a hundreds of > them) and then use that info to lable and make reports later. For now, I > just want to know if there is a possiblity to do this. What do you mean by "read"? Do you want to execute the Ruby code in those scripts? > Each script contains an intialized setting that I can use to distinguish > the difference in my file standards. Later, I am going to create a > report based on what is available. Any suggestions for the below code? > Thanks, MC > > > Dir.entries("C:/ScriptDirectory").each do |filename| > if File.extname(filename) == ".rb" then #read a ruby file > File.open(filename, 'r') do |f1| > f1.each_line |line| > @fileStandard1 << filename if line =~ /setting343234/ > puts "Stardard1" +@fileStandard1 > @fileStandard2 << filename if line =~ /setting343999/ > puts "Standard2" +@fileStandard2 > @fileStandard3 << filename if line =~ /setting343245/ > puts "Standard3" +@fileStandard3 > end > end > end > > ##this code is a snippet I am going to use the new variables later in > the program. There seems to be a bit of redundant code. How about @file_standards = { 343234 => [], 343999 => [], 343245 => [], } Dir["C:/ScriptDirectory/*.rb"].each do |file| File.foreach file do |line| num = line[/settings(\d+)/, 1].to_i std = @file_standards[num] and std << file end end Cheers robert -- remember.guy do |as, often| as.you_can - without end