From c67ae484937d383eaafb69319e4bf23879b6f0e3 Mon Sep 17 00:00:00 2001 From: pvincent Date: Thu, 13 Jun 2024 16:58:02 +0400 Subject: [PATCH] rendered_view_duration --- lib/formatters/ansi_formatter.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/formatters/ansi_formatter.rb b/lib/formatters/ansi_formatter.rb index b288b55..26ee7d9 100644 --- a/lib/formatters/ansi_formatter.rb +++ b/lib/formatters/ansi_formatter.rb @@ -16,6 +16,7 @@ class AnsiFormatter < SemanticLogger::Formatters::Color FAILOVER_WRAP = 80 CHAR_FATAL = '⯶'.freeze TERMINUS_STRING = '╙─╜'.freeze + RENDERED_VIEW_DURATION = 100 def initialize super(color_map: @@ -101,7 +102,16 @@ class AnsiFormatter < SemanticLogger::Formatters::Color log.message.lstrip! if log.name == 'ActiveRecord::Base' && log.message.starts_with?('↳ ') log.message = AnsiCommon.ansi_trace(log.message) + elsif log.name == 'ActionView::Base' + match = log.message.match(/^Rendered( layout| collection of|) (.*?\.erb)(.*)(\(Duration:.*\))/) + if match + m1, m2, m3, m4 = match.captures + duration = m4.match(/Duration: (\d+\.?\d*)ms/).match(1).to_f + duration = duration < RENDERED_VIEW_DURATION ? '' : m4.to_s + log.message = "Rendered#{m1} #{m2}#{m3}#{duration}" + end end + end log