module RSpeed::Differ
Public Instance Methods
actual_data(files:, result:)
click to toggle source
# File lib/rspeed/differ.rb, line 19 def actual_data(files:, result:) result.select { |item| files.include?(item[:file]) } end
actual_files(spec_path: RSpeed::Env.spec_path)
click to toggle source
# 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 end end
added_data(files:, result:)
click to toggle source
# File lib/rspeed/differ.rb, line 23 def added_data(files:, result:) (files - result.map { |item| item[:file] }).map { |file| { file: file, time: nil } } end
diff(from: actual_files, to: RSpeed::Database.result)
click to toggle source
# File lib/rspeed/differ.rb, line 27 def diff(from: actual_files, to: RSpeed::Database.result) to = to.uniq { |item| item[:file] } added = added_data(files: from, result: to) actual = actual_data(files: from, result: to) + added_data(files: from, result: to) removed = removed_data(files: from, result: to) { actual_files: actual, actual_time: sum_time(data: actual), added_files: added, added_time: sum_time(data: added), removed_files: removed, removed_time: sum_time(data: removed), } end
final_diff(from: RSpeed::Database.previous_result, to: RSpeed::Database.result)
click to toggle source
# File lib/rspeed/differ.rb, line 43 def final_diff(from: RSpeed::Database.previous_result, to: RSpeed::Database.result) from = from.uniq { |item| item[:file] } to = to.uniq { |item| item[:file] } previous_files = from.map { |item| item[:file] } actual_files = to.map { |item| item[:file] } added = to.reject { |item| previous_files.include?(item[:file]) } removed = from.reject { |item| actual_files.include?(item[:file]) } { actual_files: to, actual_time: sum_time(data: to), added_files: added, added_time: sum_time(data: added), removed_files: removed, removed_time: sum_time(data: removed), } end
removed_data(files:, result:)
click to toggle source
# File lib/rspeed/differ.rb, line 61 def removed_data(files:, result:) result.reject { |item| files.include?(item[:file]) } end
sum_time(data:)
click to toggle source
# File lib/rspeed/differ.rb, line 65 def sum_time(data:) return '?' if data.all? { |item| item[:time].nil? } data.sum { |item| item[:time].to_f } end