class Utils::Grepper
def initialize(opts = {})
def initialize(opts = {}) @args = opts[:args] || {} @roots = opts[:roots] || [] @config = opts[:config] || Utils::Config::ConfigFile.new if n = @args.values_at(*%w[A B C]).compact.first if n.to_s =~ /\A\d+\Z/ and (n = n.to_i) >= 1 @queue = Queue.new n else raise ArgumentError, "needs to be an integer number >= 1" end end @paths = [] pattern_opts = opts.subhash(:pattern) | { :cset => @args['a'], :icase => @args['i'], } @pattern = @args['R'] ? FuzzyPattern.new(pattern_opts) : RegexpPattern.new(pattern_opts) @name_pattern = if name_pattern = @args['N'] RegexpPattern.new(:pattern => name_pattern) elsif name_pattern = @args['n'] FuzzyPattern.new(:pattern => name_pattern) end @skip_pattern = if skip_pattern = @args['S'] RegexpPattern.new(:pattern => skip_pattern) elsif skip_pattern = @args['s'] FuzzyPattern.new(:pattern => skip_pattern) end end