class RuboCop::Formatter::HTMLFormatter::ERBContext
This class provides helper methods used in the ERB template.
def base64_encoded_logo_image
def base64_encoded_logo_image image = File.read(LOGO_IMAGE_PATH, binmode: true) # `Base64.encode64` compatible: # https://github.com/ruby/base64/blob/v0.1.1/lib/base64.rb#L27-L40 [image].pack('m') end
def binding
Make Kernel#binding public.
def binding super end
def decorated_message(offense)
def decorated_message(offense) offense.message.gsub(/`(.+?)`/) { "<code>#{escape(Regexp.last_match(1))}</code>" } end
def escape(string)
def escape(string) CGI.escapeHTML(string) end
def highlight_source_tag(offense)
def highlight_source_tag(offense) "<span class=\"highlight #{offense.severity}\">" \ "#{escape(offense.highlighted_area.source)}" \ '</span>' end
def highlighted_source_line(offense)
def highlighted_source_line(offense) source_before_highlight(offense) + highlight_source_tag(offense) + source_after_highlight(offense) + possible_ellipses(offense.location) end
def initialize(files, summary)
def initialize(files, summary) @files = files.sort_by(&:path) @summary = summary end
def possible_ellipses(location)
def possible_ellipses(location) location.single_line? ? '' : " #{ELLIPSES}" end
def render_css
def render_css context = CSSContext.new template = File.read(CSS_PATH, encoding: Encoding::UTF_8) erb = ERB.new(template, trim_mode: '-') erb.result(context.binding).lines.map do |line| line == "\n" ? line : " #{line}" end.join end
def source_after_highlight(offense)
def source_after_highlight(offense) source_line = offense.location.source_line escape(source_line[offense.highlighted_area.end_pos..]) end
def source_before_highlight(offense)
def source_before_highlight(offense) source_line = offense.location.source_line escape(source_line[0...offense.highlighted_area.begin_pos]) end