class BaseFileRetriever

Constants

FileInfo

Public Class Methods

new(skip_file_regs=[]) click to toggle source
# File lib/file_retriever/FileRetriever/sources/FileRetriever.rb, line 5
def initialize(skip_file_regs=[])
  default_skip_regs = ["^\\.+$","\\.DS_Store$"]
  skip_file_regs.concat(default_skip_regs)
  @skip_file_names_reg = reg_convert_from_strs(skip_file_regs)
end

Public Instance Methods

retrieve(base_path,callback) click to toggle source
# File lib/file_retriever/FileRetriever/sources/FileRetriever.rb, line 11
def retrieve(base_path,callback)
  files = dir_entries(base_path)
  files.each do |file_name|
    next if skip_file?(file_name)

    abs_path = File.expand_path(file_name,base_path)
    file_type = ftype?(abs_path)
    next unless file_exist?(abs_path)

    callback.call(file_type,file_name,abs_path)

      case file_type
      when :directory
        retrieve(abs_path,callback)
      end
  end
end
retrieved(base_path,result_files=[]) click to toggle source
# File lib/file_retriever/FileRetriever/sources/FileRetriever.rb, line 29
def retrieved(base_path,result_files=[])
  files = dir_entries(base_path)
  files.each do |file_name|
    next if skip_file?(file_name)

    abs_path = File.expand_path(file_name,base_path)
    file_type = ftype?(abs_path)
    next unless file_exist?(abs_path)

      result_files << FileInfo.new(file_type,file_name,abs_path)

        case file_type
        when :directory
          retrieved(abs_path,result_files)
        end
  end
  result_files
end
update_skip_file_names_reg(reg) click to toggle source
# File lib/file_retriever/FileRetriever/sources/FileRetriever.rb, line 48
def update_skip_file_names_reg(reg)
  @skip_file_names_reg = reg
end

Private Instance Methods

dir_entries(path) click to toggle source
# File lib/file_retriever/FileRetriever/sources/FileRetriever.rb, line 62
def dir_entries(path)
  Dir.entries(path)
end
file_exist?(path) click to toggle source
# File lib/file_retriever/FileRetriever/sources/FileRetriever.rb, line 75
def file_exist?(path)
   File.exist?(path)
end
ftype?(path) click to toggle source
# File lib/file_retriever/FileRetriever/sources/FileRetriever.rb, line 53
def ftype?(path)
  begin
   File.ftype(path).to_sym
  rescue => e
   return :unknown 
  ensure
  end
end
read(path) click to toggle source
# File lib/file_retriever/FileRetriever/sources/FileRetriever.rb, line 79
def read(path)
   File.read(path)
end
reg_convert_from_strs(strs) click to toggle source
# File lib/file_retriever/FileRetriever/sources/FileRetriever.rb, line 71
def reg_convert_from_strs(strs)
  %r(#{strs.join("|")})
end
skip_file?(relative_path) click to toggle source
# File lib/file_retriever/FileRetriever/sources/FileRetriever.rb, line 66
def skip_file?(relative_path)
  return true if @skip_file_names_reg.match(relative_path)
  return false
end