From: grooveska Date: 2008-02-07T07:19:56+09:00 Subject: pulling elements into a method... I am new to ruby and I'm having trouble with a script I'm working on. It probably is something simple that I am missing. I am working on a script to delete some files from several directories. Here is the part of the script I'm having problems with: time = Time.now #set time object to the current time month = time.month #grab the number of the month from the current day = time.day #grab the day of the current time year = time.year #grab the year of the current time day = day - 14 def delete_old_files(dir, time) Dir.chdir(dir) do Dir.foreach(".") do |entry| next if File.stat(entry).directory? #prevent from deleting directories #Use the modification time if File.mtime(entry) < time File.unlink(entry) end end end end cleanup_dirs = ["E:/oracle/MB4/oraarch/", "E:/oracle/MB3/oraarch/", "E:/oracle/MB5/oraarch", "F:/oracle/MBA/oraarch/", "F:/oracle/MB2/ oraarch/", "F:/oracle/MB3/oraarch/", "F:/oracle/MB/oraarch/"] cleanup_dirs.each do |cleanup_directory| delete_old_files(cleanup_directory,Time.local(year,month,day,00,00,0)) end I should probably use a block or proc or something like that. Any advice is greatly appreciated. I'm getting the argument out of range error. Thanks.