Module: Bidi2pdf::Bidi::NetworkEventFormatters::NetworkEventFormatterUtils
- Included in:
- NetworkEventConsoleFormatter, NetworkEventHtmlFormatter
- Defined in:
- lib/bidi2pdf/bidi/network_event_formatters/network_event_formatter_utils.rb
Instance Method Summary collapse
- #format_bytes(size) ⇒ Object
- #format_timestamp(timestamp) ⇒ Object
- #parse_timing(event) ⇒ Object
- #shorten_url(url) ⇒ Object
Instance Method Details
#format_bytes(size) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/bidi2pdf/bidi/network_event_formatters/network_event_formatter_utils.rb', line 9 def format_bytes(size) return "N/A" unless size.is_a?(Numeric) units = %w[B KB MB GB TB] idx = 0 while size >= 1024 && idx < units.size - 1 size /= 1024.0 idx += 1 end format("%<size>.2f %<unit>s", size: size, unit: units[idx]) end |
#format_timestamp(timestamp) ⇒ Object
37 38 39 40 41 |
# File 'lib/bidi2pdf/bidi/network_event_formatters/network_event_formatter_utils.rb', line 37 def () return "N/A" unless Time.at(.to_f / 1000).utc.strftime("%Y-%m-%d %H:%M:%S.%L UTC") end |
#parse_timing(event) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/bidi2pdf/bidi/network_event_formatters/network_event_formatter_utils.rb', line 21 def parse_timing(event) return [] unless event.timing.is_a?(Hash) keys = %w[ requestTime proxyStart proxyEnd dnsStart dnsEnd connectStart connectEnd sslStart sslEnd workerStart workerReady sendStart sendEnd receiveHeadersEnd ] keys.filter_map do |key| next unless event.timing[key] label = key.gsub(/([A-Z])/, ' \1').capitalize { label: label, key: key, ms: event.timing[key].round(2) } end end |
#shorten_url(url) ⇒ Object
43 44 45 46 47 48 49 |
# File 'lib/bidi2pdf/bidi/network_event_formatters/network_event_formatter_utils.rb', line 43 def shorten_url(url) sanitized_url = CGI.escapeHTML(url) return sanitized_url unless sanitized_url.start_with?("data:text/html") "data:text/html,..." end |