Module: RspecSprint::Fixers::LetItBe::ApplyFormatter
- Defined in:
- lib/rspec_sprint/fixers/let_it_be/apply_formatter.rb
Class Method Summary collapse
- .file_line(r) ⇒ Object
- .format(results) ⇒ Object
- .summary_line(results) ⇒ Object
- .time_range(baseline_s, after_s) ⇒ Object
Class Method Details
.file_line(r) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/rspec_sprint/fixers/let_it_be/apply_formatter.rb', line 23 def file_line(r) path = r.file.to_s case r.status when :accepted "#{path}: 採用 #{r.applied.size} 件 #{time_range(r.baseline_s, r.after_s)}" when :bisect_partial "#{path}: 採用 #{r.applied.size} 件 [bisect]" when :reverted_slow "#{path}: リバート(速度改善不足)#{r.reverted.size} 件 #{time_range(r.baseline_s, r.after_s)}" when :reverted_red "#{path}: リバート(赤)#{r.reverted.size} 件" when :skipped_dirty "#{path}: スキップ(git-dirty)#{r.skipped.size} 件" when :skipped_unstable "#{path}: スキップ(baseline 不安定)#{r.skipped.size} 件" else "#{path}: 不明なステータス #{r.status}" end end |
.format(results) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/rspec_sprint/fixers/let_it_be/apply_formatter.rb', line 9 def format(results) lines = ["rspec-sprint fix let-it-be", ""] results.each do |r| lines << file_line(r) end lines << "" lines << summary_line(results) lines << "" lines << "採用分は working tree に未コミットです。`git diff` で確認して commit してください。" lines.join("\n") end |
.summary_line(results) ⇒ Object
50 51 52 53 54 55 56 57 |
# File 'lib/rspec_sprint/fixers/let_it_be/apply_formatter.rb', line 50 def summary_line(results) total_applied = results.sum { |r| r.applied.size } accepted_files = results.count { |r| r.status == :accepted || r.status == :bisect_partial } baseline_total = results.filter_map(&:baseline_s).sum after_total = results.filter_map(&:after_s).sum time_part = baseline_total > 0 && after_total > 0 ? " #{time_range(baseline_total, after_total)}" : "" "合計: 採用 #{total_applied} 件 / #{accepted_files} ファイル#{time_part}" end |
.time_range(baseline_s, after_s) ⇒ Object
43 44 45 46 47 48 |
# File 'lib/rspec_sprint/fixers/let_it_be/apply_formatter.rb', line 43 def time_range(baseline_s, after_s) return "" unless baseline_s && after_s pct = baseline_s > 0 ? ((baseline_s - after_s) / baseline_s * 100).round : 0 "(#{baseline_s.round(1)}s → #{after_s.round(1)}s, -#{pct}%)" end |