Class: PDD::Sources

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

Overview

Code base abstraction

Instance Method Summary collapse

Constructor Details

#initialize(dir, ptns = []) ⇒ Sources

Ctor.

dir

Directory with source code files



33
34
35
36
# File 'lib/pdd/sources.rb', line 33

def initialize(dir, ptns = [])
  @dir = dir
  @exclude = ptns
end

Instance Method Details

#exclude(ptn) ⇒ Object



56
57
58
# File 'lib/pdd/sources.rb', line 56

def exclude(ptn)
  Sources.new(@dir, @exclude.push(ptn))
end

#fetchObject

Fetch all sources.



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/pdd/sources.rb', line 39

def fetch
  files = Rake::FileList.new(File.join(@dir, '**/*')) do |list|
    @exclude.each do |ptn|
      Rake::FileList.new(File.join(@dir, ptn)).each do |f|
        list.exclude(f)
      end
    end
  end.to_a
  PDD.log.info "#{files.size} file(s) found"
  files.select { |f| !File.directory?(f) && !File.binary?(f) }.map do |file|
    VerboseSource.new(
      file,
      Source.new(file, file[@dir.length + 1, file.length])
    )
  end
end