Module: RSpeed::Differ
- Defined in:
- lib/rspeed/differ.rb
Class Method Summary collapse
- .actual_data(files:, result:) ⇒ Object
- .actual_files(spec_path: RSpeed::Env.spec_path) ⇒ Object
- .added_data(files:, result:) ⇒ Object
- .diff(from: actual_files, to: RSpeed::Database.result) ⇒ Object
- .final_diff(from: RSpeed::Database.previous_result, to: RSpeed::Database.result) ⇒ Object
- .removed_data(files:, result:) ⇒ Object
- .sum_time(data:) ⇒ Object
Class Method Details
.actual_data(files:, result:) ⇒ Object
19 20 21 |
# 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) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 |
# 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:) ⇒ Object
23 24 25 |
# 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) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# 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) ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# 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:) ⇒ Object
61 62 63 |
# File 'lib/rspeed/differ.rb', line 61 def removed_data(files:, result:) result.reject { |item| files.include?(item[:file]) } end |
.sum_time(data:) ⇒ Object
65 66 67 68 69 |
# 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 |