Class: BaseFileRetriever

Inherits:
Object
  • Object
show all
Defined in:
lib/file_retriever/FileRetriever/sources/FileRetriever.rb

Direct Known Subclasses

FileRetriever::Base

Defined Under Namespace

Classes: FileInfo

Instance Method Summary collapse

Constructor Details

#initialize(skip_file_regs = []) ⇒ BaseFileRetriever

Returns a new instance of BaseFileRetriever.



5
6
7
8
9
# 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

Instance Method Details

#retrieve(base_path, callback) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 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 = []) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# 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) ⇒ Object



48
49
50
# File 'lib/file_retriever/FileRetriever/sources/FileRetriever.rb', line 48

def update_skip_file_names_reg(reg)
  @skip_file_names_reg = reg
end