Sha256: 95e4d1c04f131c473d87e27b91e78a5f272687034ca6957cb25f85f54f8bda13
Contents?: true
Size: 1.11 KB
Versions: 5
Compression:
Stored size: 1.11 KB
Contents
require 'delegate' module Pronto module Formatter class TextMessageDecorator < SimpleDelegator include Colorizable LOCATION_COLOR = :cyan LEVEL_COLORS = { info: :yellow, warning: :magenta, error: :red, fatal: :red }.freeze def to_h original = __getobj__.to_h original[:line] = __getobj__.line.new_lineno if __getobj__.line original[:color_level] = format_level(__getobj__) original[:color_location] = format_location(__getobj__) original end private def format_location(message) line = message.line lineno = line.new_lineno if line path = message.path commit_sha = message.commit_sha if path || lineno path = colorize(path, LOCATION_COLOR) if path "#{path}:#{lineno}" elsif commit_sha colorize(commit_sha[0..6], LOCATION_COLOR) end end def format_level(message) level = message.level color = LEVEL_COLORS.fetch(level) colorize(level[0].upcase, color) end end end end
Version data entries
5 entries across 5 versions & 1 rubygems