Sha256: b6b4de8325b50a278fdd4feab0efb33b1f13dafac2bd06cb4d69fab4b16e7491

Contents?: true

Size: 1.4 KB

Versions: 8

Compression:

Stored size: 1.4 KB

Contents

module Rfix::Ext
  module Offense
    def where
      line.to_s + ":" + real_column.to_s
    end

    def info
      message.split(": ", 2).last.delete("\n")
    end

    def msg
      CLI::UI.resolve_text("{{italic:#{info}}}", truncate_to: CLI::UI::Terminal.width - 10)
    end

    def code
      message.split(": ", 2).first
    end

    def star
      Rainbow("⭑")
    end

    def cross
      Rainbow("✗").red
    end

    def check
      Rainbow("✓").green
    end

    def circle
      Rainbow("⍟")
    end

    def relative_path
      Rfix.to_relative(path: location.source_buffer.name)
    end

    def clickable_path
      "{{italic:#{relative_path}:#{where}}}"
    end

    def clickable_plain_severity
      to_url("https://www.rubydoc.info/gems/rubocop/RuboCop/Cop/#{code}", code)
    end

    def clickable_severity
      "{{#{severity.code}}} {{italic:#{clickable_plain_severity}}}"
    end

    def icon
      return check.green if corrected?
      return star.yellow if correctable?

      cross.red
    end

    def to_clickable(url, title)
      esc = CLI::UI::ANSI::ESC
      cmd = esc + "]8;;"
      slash = "\x07"
      cmd + "#{escape(url)}#{slash}#{escape(title)}" + cmd + slash
    end

    def to_path(path, title)
      to_clickable("file://#{path}", title)
    end

    def to_url(url, title)
      to_clickable(url, title)
    end

    def escape(str)
      Shellwords.escape(str)
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
rfix-1.0.15.pre.116 lib/rfix/extensions/offense.rb
rfix-1.0.15 lib/rfix/extensions/offense.rb
rfix-1.0.8.pre.109 lib/rfix/extensions/offense.rb
rfix-1.0.8.pre.108 lib/rfix/extensions/offense.rb
rfix-1.0.7.pre.68 lib/rfix/extensions/offense.rb
rfix-1.0.7.pre.67 lib/rfix/extensions/offense.rb
rfix-1.0.7.pre.66 lib/rfix/extensions/offense.rb
rfix-1.0.7.pre.65 lib/rfix/extensions/offense.rb