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
37
# File 'lib/pdd/sources.rb', line 33

def initialize(dir, ptns = [])
  @dir = dir
  @exclude = ptns
  @magic = FileMagic.new(FileMagic::MAGIC_MIME)
end

Instance Method Details

#exclude(ptn) ⇒ Object



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

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

#fetchObject

Fetch all sources.



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

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"
  types = [/^text\//, /application\/xml/]
  files
    .select { |f| types.index { |re| @magic.file(f) =~ re } }
    .map do |file|
      Source.new(file, file[@dir.length + 1, file.length])
    end
end