class Rubygrep::FileSearcher
Attributes
found_file_names[RW]
options[RW]
Public Class Methods
new(options = {})
click to toggle source
# File lib/rubygrep/file_searcher.rb, line 5 def initialize(options = {}) @options = options @found_file_names = [] end
Public Instance Methods
search(file_names)
click to toggle source
# File lib/rubygrep/file_searcher.rb, line 10 def search(file_names) search_with_options(file_names) found_file_names end
Private Instance Methods
inner_files(folder_name)
click to toggle source
# File lib/rubygrep/file_searcher.rb, line 30 def inner_files(folder_name) Dir.entries(folder_name).select {|entry| entry != '.' and entry != '..'} end
relative_path(file_name, folder)
click to toggle source
# File lib/rubygrep/file_searcher.rb, line 34 def relative_path(file_name, folder) if file_name =~ /^\\/ || folder == '.' file_name else "#{folder}/#{file_name}" end end
search_with_options(file_names, current_folder = '.')
click to toggle source
# File lib/rubygrep/file_searcher.rb, line 17 def search_with_options(file_names, current_folder = '.') file_names.each do |file_name| file_path = relative_path(file_name, current_folder) if File.directory?(file_path) && options[:recursive] search_with_options(inner_files(file_path), file_path) elsif text_file?(file_path) found_file_names << file_path elsif !File.exists?(file_path) puts "No such file or directory #{file_path}" end end end
text_file?(file_name)
click to toggle source
# File lib/rubygrep/file_searcher.rb, line 42 def text_file?(file_name) File.file?(file_name) end