Class: DiffTest::ImpactedFileTracker

Inherits:
Object
  • Object
show all
Defined in:
lib/diff_test/impacted_file_tracker.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeImpactedFileTracker



10
11
12
13
14
15
16
# File 'lib/diff_test/impacted_file_tracker.rb', line 10

def initialize
  @trackers = [
    DiffTest::Trackers::RubyFile.new,
    DiffTest::Trackers::Constant.new,
    DiffTest::Trackers::JsFile.new
  ]
end

Instance Attribute Details

#trackersObject (readonly)

Returns the value of attribute trackers.



8
9
10
# File 'lib/diff_test/impacted_file_tracker.rb', line 8

def trackers
  @trackers
end

Instance Method Details

#impacted_filesObject



28
29
30
# File 'lib/diff_test/impacted_file_tracker.rb', line 28

def impacted_files
  trackers.map(&:impacted_files).reduce(Set.new, :|)
end

#pause(&block) ⇒ Object



40
41
42
43
44
45
# File 'lib/diff_test/impacted_file_tracker.rb', line 40

def pause(&block)
  trackers.each(&:pause)
  result = yield
  trackers.each(&:resume)
  result
end

#save_payloadObject



18
19
20
21
22
23
24
25
26
# File 'lib/diff_test/impacted_file_tracker.rb', line 18

def save_payload
  impacted_files.each_with_object({}) do |file_path, payload|
    begin
      payload[file_path] = FileHashComputer.compute(file_path)
    rescue Errno::ENOENT
      nil
    end
  end
end

#startObject



32
33
34
# File 'lib/diff_test/impacted_file_tracker.rb', line 32

def start
  trackers.each(&:start)
end

#stopObject



36
37
38
# File 'lib/diff_test/impacted_file_tracker.rb', line 36

def stop
  trackers.each(&:stop)
end