Sha256: 970b8ea3f6678da657b9ea2a3dcf3561ec9341e27927cc50c167d32264032d34

Contents?: true

Size: 1.47 KB

Versions: 19

Compression:

Stored size: 1.47 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
      # TODO: Fix this, do not use Dir.getwd, use git root
      location.source_buffer.name.sub(File.join(Dir.getwd, "/"), "")
    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

19 entries across 19 versions & 1 rubygems

Version Path
rfix-1.4.1 lib/rfix/extensions/offense.rb
rfix-1.4.0.pre.201 lib/rfix/extensions/offense.rb
rfix-1.4.0 lib/rfix/extensions/offense.rb
rfix-1.3.0.pre.199 lib/rfix/extensions/offense.rb
rfix-1.2.6.pre.198 lib/rfix/extensions/offense.rb
rfix-1.2.6 lib/rfix/extensions/offense.rb
rfix-1.2.2.pre.174 lib/rfix/extensions/offense.rb
rfix-1.2.5 lib/rfix/extensions/offense.rb
rfix-1.2.4 lib/rfix/extensions/offense.rb
rfix-1.2.3.pre lib/rfix/extensions/offense.rb
rfix-1.2.2.pre lib/rfix/extensions/offense.rb
rfix-1.2.2.pre.172 lib/rfix/extensions/offense.rb
rfix-1.2.2 lib/rfix/extensions/offense.rb
rfix-1.1.0.pre.150 lib/rfix/extensions/offense.rb
rfix-1.2.0 lib/rfix/extensions/offense.rb
rfix-1.1.4.pre lib/rfix/extensions/offense.rb
rfix-1.1.1.pre lib/rfix/extensions/offense.rb
rfix-1.1.0.pre.149 lib/rfix/extensions/offense.rb
rfix-1.1.0.pre.147 lib/rfix/extensions/offense.rb