Class: Bidi2pdf::Bidi::NetworkEventFormatters::NetworkEventConsoleFormatter
- Inherits:
-
Object
- Object
- Bidi2pdf::Bidi::NetworkEventFormatters::NetworkEventConsoleFormatter
- Includes:
- NetworkEventFormatterUtils
- Defined in:
- lib/bidi2pdf/bidi/network_event_formatters/network_event_console_formatter.rb
Overview
rubocop: disable Metrics/AbcSize
Constant Summary collapse
- RESET =
ANSI styles
"\e[0m"- BOLD =
"\e[1m"- DIM =
"\e[2m"- RED =
"\e[31m"- GREEN =
"\e[32m"- YELLOW =
"\e[33m"- CYAN =
"\e[36m"- GRAY =
"\e[90m"
Instance Attribute Summary collapse
-
#color_enabled ⇒ Object
readonly
Returns the value of attribute color_enabled.
-
#logger ⇒ Object
readonly
Returns the value of attribute logger.
Instance Method Summary collapse
-
#initialize(color: true, logger: Bidi2pdf.network_events_logger) ⇒ NetworkEventConsoleFormatter
constructor
A new instance of NetworkEventConsoleFormatter.
- #log(events) ⇒ Object
- #pretty_log(event) ⇒ Object
Methods included from NetworkEventFormatterUtils
#format_bytes, #format_timestamp, #parse_timing, #shorten_url
Constructor Details
#initialize(color: true, logger: Bidi2pdf.network_events_logger) ⇒ NetworkEventConsoleFormatter
Returns a new instance of NetworkEventConsoleFormatter.
22 23 24 25 |
# File 'lib/bidi2pdf/bidi/network_event_formatters/network_event_console_formatter.rb', line 22 def initialize(color: true, logger: Bidi2pdf.network_events_logger) @color_enabled = color @logger = logger end |
Instance Attribute Details
#color_enabled ⇒ Object (readonly)
Returns the value of attribute color_enabled.
10 11 12 |
# File 'lib/bidi2pdf/bidi/network_event_formatters/network_event_console_formatter.rb', line 10 def color_enabled @color_enabled end |
#logger ⇒ Object (readonly)
Returns the value of attribute logger.
10 11 12 |
# File 'lib/bidi2pdf/bidi/network_event_formatters/network_event_console_formatter.rb', line 10 def logger @logger end |
Instance Method Details
#log(events) ⇒ Object
27 28 29 |
# File 'lib/bidi2pdf/bidi/network_event_formatters/network_event_console_formatter.rb', line 27 def log(events) events.each { |event| pretty_log(event).each_line { |line| logger.info(line.chomp) } } end |
#pretty_log(event) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/bidi2pdf/bidi/network_event_formatters/network_event_console_formatter.rb', line 31 def pretty_log(event) status = event.http_status_code ? "HTTP #{event.http_status_code}" : "pending" status_color = color_for_status(event.http_status_code) start = event.(event.) finish = event. ? event.(event.) : dim("...") duration = event.duration_seconds ? cyan("#{event.duration_seconds}s") : dim("in progress") timing_details = format_timing(event) bytes = event.bytes_received ? format_bytes(event.bytes_received) : dim("N/A") displayed_url = shorten_url(event.url) " \#{bold(\"\u250C\u2500 Network Event \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\")}\n \#{bold(\"\u2502 Request: \")}\#{event.http_method || \"?\"} \#{displayed_url}\#{\" \"}\n \#{bold(\"\u2502 State: \")}\#{event.state}\n \#{bold(\"\u2502 Status: \")}\#{status_color}\#{status}\#{reset}\n \#{bold(\"\u2502 Started: \")}\#{start}\n \#{bold(\"\u2502 Ended: \")}\#{finish}\n \#{bold(\"\u2502 Duration:\")} \#{duration}\n \#{bold(\"\u2502 Received:\")} \#{bytes}\n \#{timing_details}\n \#{bold(\"\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\")}\n LOG\nend\n".strip |