On Dec 6, 10:54 pm, MonkeeSage <MonkeeS... / gmail.com> wrote: > On Dec 6, 9:20 pm, "ara.t.howard" <ara.t.how... / gmail.com> wrote: > > > On Dec 6, 2007, at 7:05 PM, MonkeeSage wrote: > > > > Ps. Your gemspec needs a dependency on main. > > > ooooops. thanks! > > > a @http://codeforpeople.com/ > > -- > > we can deny everything, except that we have the possibility of being > > better. simply reflect on that. > > h.h. the 14th dalai lama > > NP. I really like this package, BTW. :) > > A problem I just ran into is dot-files (e.g., .tesfile). It looks like > the glob pattern (constructued on line 115) is the problem. In a > directory with .testfile, I get this output: > > $ ruby -w 'p Dir["./**/**"]' > [] > > $ ruby -e 'p Dir["./.*"]' > ["..", ".testfile", "."] > > But adding a dot to the double star doesn't work correctly (i.e., > "./.**/**" get treated as "./../*", doh). I'm not sure there's any > easy way to do it with Dir#glob. > > Regards, > Jordan Not sure what the difference in performance is with Find#fidn vs. Dir#glob, but as a drop-in replacement... --- search.old 2007-12-06 23:09:34.000000000 -0600 +++ search 2007-12-06 23:10:13.000000000 -0600 @@ -1,6 +1,7 @@ #! /usr/bin/env ruby require 'main' +require 'find' Main { description <<-txt @@ -112,9 +113,8 @@ end def each_entry_with_lines - glob = File.join param['Directory'].value, '**', '**' filters = build_filter_list - Dir.glob(glob) do |entry| + Find.find param['Directory'].value do |entry| next unless filters.match(entry) test ?f, entry or next lines = IO.readlines entry rescue next Might I also suggest that you filter on the file's basename? One might except... search -F "^\." -a . "blah" ...to match all dot-files in ./ which contain "blah", but you actually need something like this since you're running the filter against the absolute path... search -F ".*/*\." -a . "blah" Regards, Jordan