Class: Audiothority::Inspector

Inherits:
Object
  • Object
show all
Defined in:
lib/audiothority/inspector.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(crawler, validators, tracker, opts = {}) ⇒ Inspector

Returns a new instance of Inspector.



13
14
15
16
17
18
# File 'lib/audiothority/inspector.rb', line 13

def initialize(crawler, validators, tracker, opts={})
  @crawler = crawler
  @validators = validators
  @tracker = tracker
  @extract = opts[:extract] || Extract.new
end

Class Method Details

.scan(dirs, tracker, opts = {}) ⇒ Object



5
6
7
8
9
10
11
# File 'lib/audiothority/inspector.rb', line 5

def self.scan(dirs, tracker, opts={})
  paths = dirs.map { |d| Pathname.new(d) }
  crawler = Crawler.new(paths)
  validators = opts[:validators] || Validators.default
  inspector = new(crawler, validators, tracker)
  inspector.investigate
end

Instance Method Details

#investigateObject



20
21
22
23
24
25
26
27
28
29
# File 'lib/audiothority/inspector.rb', line 20

def investigate
  @crawler.crawl do |path|
    @extract.as_tags(path.children) do |tags|
      violations = @validators.map { |v| v.validate(tags) }.select(&:invalid?)
      if violations.any?
        @tracker.mark(path, violations)
      end
    end
  end
end