Module: RSpeed::Differ

Defined in:
lib/rspeed/differ.rb

Class Method Summary collapse

Class Method Details

.actual_data(files:, result:) ⇒ Object



21
22
23
24
25
# File 'lib/rspeed/differ.rb', line 21

def actual_data(files:, result:)
  result
    .select { |item| files.include?(item[:file]) }
    .tap { |data| RSpeed::Logger.log(self, __method__, data) }
end

.actual_files(spec_path: RSpeed::Env.spec_path) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/rspeed/differ.rb', line 7

def actual_files(spec_path: RSpeed::Env.spec_path)
  [].tap do |data|
    Dir[spec_path].sort.each do |file|
      lines = File.open(file).read.split("\n")

      lines&.each&.with_index do |item, index|
        data << "#{file}:#{index + 1}" if /^it/.match?(item.gsub(/\s+/, ''))
      end
    end

    RSpeed::Logger.log(self, __method__, data)
  end
end

.added_data(files:, result:) ⇒ Object



27
28
29
30
31
# File 'lib/rspeed/differ.rb', line 27

def added_data(files:, result:)
  (files - result.map { |item| item[:file] })
    .map { |file| { file: file, time: 0 } }
    .tap { |data| RSpeed::Logger.log(self, __method__, data) }
end

.diffObject



33
34
35
36
37
38
39
40
41
# File 'lib/rspeed/differ.rb', line 33

def diff
  files  = actual_files
  result = RSpeed::Database.result.uniq { |item| item[:file] }

  removed_data(files: files, result: result) # called just for log purpose

  (actual_data(files: files, result: result) + added_data(files: files, result: result))
    .tap { |data| RSpeed::Logger.log(self, __method__, data) }
end

.removed_data(files:, result:) ⇒ Object



43
44
45
46
47
# File 'lib/rspeed/differ.rb', line 43

def removed_data(files:, result:)
  result
    .reject { |item| files.include?(item[:file]) }
    .tap { |data| RSpeed::Logger.log(self, __method__, data) }
end

.removed_time(data:) ⇒ Object



49
50
51
52
53
# File 'lib/rspeed/differ.rb', line 49

def removed_time(data:)
  data
    .sum { |item| item[:time].to_f }
    .tap { |result| RSpeed::Logger.log(self, __method__, result) }
end