rfix 1.0.7.pre.61 → 1.0.7.pre.65

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f0ca636e0b0fdf5b52df3d8fdf1a0c6e5598e1099ea2827783f392d859554b02
4
- data.tar.gz: b2fcdef1b9427af6c957bc8660217a58ffbe113ac6f61b10d90c25d66db65cd9
3
+ metadata.gz: ab51832758a2766094d61f5568dccf230cecd9ffe2527c0b90c574ac75a8243e
4
+ data.tar.gz: 0466e6aee2a5a63fdfff88038ad159c6e08b964f32576618a24574f3ded57429
5
5
  SHA512:
6
- metadata.gz: 423bb5ff85314b5f962fd577d8edbf60190015ba16b45f2580867551fe84dd31c3464dd2e7c24789db67cda3db9810cd4fa268359112c3b6fed4a1a4576fd810
7
- data.tar.gz: 26da76674da91b00c261a3d55d88d07ae6650665168cbe4963d7abf1ba3385f670569175e5360b62cdd38e1204187c11a7a307c17446b615c649faf2286ab3bb
6
+ metadata.gz: 2c2d60ae33674c5aa8ece23e46b69a82dc51b554cc3b11d9d4b4c597e6eab54a855851414d8f7f3dcd825fb18f4e107f8dcd60e12504bb4e8a3428e9d70c2bee
7
+ data.tar.gz: 125bd91a63181e343f0bc888f9e418ccaf125059aebcc88062e2f8f676feaf2621fa310bb98890542690d6c9cb65793764ce250a6638f760d0a0ad8386fcdb88
@@ -1,4 +1,11 @@
1
1
  language: ruby
2
+ cache:
3
+ bundler: true
4
+ directories:
5
+ - $HOME/.rvm
6
+ - $HOME/Library/Caches/Homebrew
7
+ before_cache:
8
+ - brew cleanup
2
9
  rvm:
3
10
  - 2.5.0
4
11
  - 2.6.2
@@ -17,8 +24,7 @@ gemfile:
17
24
  - ci/Gemfile.rubocop-0.85.1
18
25
  before_install:
19
26
  - yes | gem update --system --force
20
- - gem uninstall bundler
21
- - gem install bundler -v 2.1.4
27
+ - gem install bundler
22
28
  - bundle config git.allow_insecure true
23
29
  install:
24
30
  - bundle install
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Rfix [![Build Status](https://travis-ci.org/oleander/rfix-rb.svg?branch=master)](https://travis-ci.org/oleander/rfix-rb) ![Gem](https://img.shields.io/gem/dt/rfix)
1
+ # Rfix [![Build Status](https://travis-ci.org/oleander/rfix-rb.svg?branch=master)](https://travis-ci.org/oleander/rfix-rb) [![Gem](https://img.shields.io/gem/dt/rfix)](https://rubygems.org/gems/rfix)
2
2
 
3
3
  RuboCop CLI that only complains about your latest changes
4
4
 
@@ -5,9 +5,22 @@
5
5
 
6
6
  require "rfix/version"
7
7
  require "rfix/log"
8
- require "rfix/extensions"
8
+ require "rfix/extensions/extensions"
9
+ require "rfix/extensions/offense"
9
10
  require "rfix/rfix"
10
11
 
11
12
  module Rfix
13
+ module Ext; end
12
14
  extend self
13
15
  end
16
+
17
+ RuboCop::Options.prepend(Rfix::Ext::Options)
18
+ RuboCop::Runner.prepend(Rfix::Ext::Runner)
19
+ RuboCop::CommentConfig.prepend(Rfix::Ext::CommentConfig)
20
+ RuboCop::Cop::Offense.prepend(Rfix::Ext::Offense)
21
+
22
+ # TODO: Handle cases where color can't be resolved by CLI::UI
23
+ RuboCop::Formatter::SimpleTextFormatter::COLOR_FOR_SEVERITY.each do |severity, color|
24
+ id = RuboCop::Cop::Severity::CODE_TABLE.invert.fetch(severity)
25
+ CLI::UI::Glyph.new(id.to_s, 0x25cf, CLI::UI.resolve_color(color))
26
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rubocop"
4
+ require "rainbow"
5
+
6
+ module Rfix::Ext
7
+ module CommentConfig
8
+ # Called by RuboCop on every line to see
9
+ # if its suppose to run against it or not
10
+ def cop_enabled_at_line?(_cop, line)
11
+ Rfix.enabled?(processed_source.file_path, line) && super
12
+ end
13
+ end
14
+
15
+ module Runner
16
+ # Called _after_ @source has been 'auto fixed' by Rubocop
17
+ def check_for_infinite_loop(source, offences)
18
+ # rubocop:disable Style/Semicolon
19
+ Rfix.refresh!(source); super # TODO: Before or after?
20
+ # rubocop:enable Style/Semicolon
21
+ end
22
+ end
23
+
24
+ module Options
25
+ # Appends custom --args to RuboCop CLI
26
+ def define_options
27
+ super.tap do |options|
28
+ @ons.each do |args, block|
29
+ option(options, *args, &block)
30
+ end
31
+ end
32
+ end
33
+
34
+ # Helper method used by rfix to append cli --args to Rubocop
35
+ def on(*args, &block)
36
+ @ons ||= []
37
+ @ons += [[args, block]]
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,77 @@
1
+ module Rfix::Ext
2
+ module Offense
3
+ def where
4
+ line.to_s + ":" + real_column.to_s
5
+ end
6
+
7
+ def info
8
+ message.split(": ", 2).last.delete("\n")
9
+ end
10
+
11
+ def msg
12
+ CLI::UI.resolve_text("{{italic:#{info}}}", truncate_to: CLI::UI::Terminal.width - 10)
13
+ end
14
+
15
+ def code
16
+ message.split(": ", 2).first
17
+ end
18
+
19
+ def star
20
+ Rainbow("⭑")
21
+ end
22
+
23
+ def cross
24
+ Rainbow("✗").red
25
+ end
26
+
27
+ def check
28
+ Rainbow("✓").green
29
+ end
30
+
31
+ def circle
32
+ Rainbow("⍟")
33
+ end
34
+
35
+ def relative_path
36
+ Rfix.to_relative(path: location.source_buffer.name)
37
+ end
38
+
39
+ def clickable_path
40
+ "{{italic:#{relative_path}:#{where}}}"
41
+ end
42
+
43
+ def clickable_plain_severity
44
+ to_url("https://www.rubydoc.info/gems/rubocop/RuboCop/Cop/#{code}", code)
45
+ end
46
+
47
+ def clickable_severity
48
+ "{{#{severity.code}}} {{italic:#{clickable_plain_severity}}}"
49
+ end
50
+
51
+ def icon
52
+ return check.green if corrected?
53
+ return star.yellow if correctable?
54
+
55
+ cross.red
56
+ end
57
+
58
+ def to_clickable(url, title)
59
+ esc = CLI::UI::ANSI::ESC
60
+ cmd = esc + "]8;;"
61
+ slash = "\x07"
62
+ cmd + "#{escape(url)}#{slash}#{escape(title)}" + cmd + slash
63
+ end
64
+
65
+ def to_path(path, title)
66
+ to_clickable("file://#{path}", title)
67
+ end
68
+
69
+ def to_url(url, title)
70
+ to_clickable(url, title)
71
+ end
72
+
73
+ def escape(str)
74
+ Shellwords.escape(str)
75
+ end
76
+ end
77
+ end
@@ -30,37 +30,14 @@ module Rfix
30
30
  report_summary(files.size, offenses.count, corrected.count)
31
31
  end
32
32
 
33
- def to_clickable(url, title)
34
- esc = CLI::UI::ANSI::ESC
35
- cmd = esc + "]8;;"
36
- slash = "\x07"
37
- cmd + "#{escape(url)}#{slash}#{escape(title)}" + cmd + slash
38
- end
39
-
40
- def to_path(path, title)
41
- to_clickable("file://#{path}", title)
42
- end
43
-
44
- def to_url(url, title)
45
- to_clickable(url, title)
46
- end
47
-
48
- def escape(str)
49
- Shellwords.escape(str)
50
- end
51
-
52
33
  def render_file(file, offenses)
53
34
  return if offenses.empty?
54
35
 
55
- path = Rfix.to_relative(path: file)
56
- url = to_url(file, path)
57
36
  offenses.each do |offense|
58
37
  out("\n\n")
59
- clickable_path = "{{italic:#{path}:#{offense.where}}}"
60
- clickable_code = to_url("https://www.rubydoc.info/gems/rubocop/RuboCop/Cop/#{offense.code}", offense.code)
61
38
  CLI::UI::Frame.open("#{offense.icon} #{offense.msg}", color: :reset)
62
39
  report_line(file, offense, offense.location, offense.highlighted_area)
63
- CLI::UI::Frame.close("#{clickable_path} » {{italic:#{clickable_code}}}", color: :reset)
40
+ CLI::UI::Frame.close("#{offense.clickable_severity} » #{offense.clickable_path}", color: :reset)
64
41
  end
65
42
  end
66
43
 
@@ -48,6 +48,8 @@ Gem::Specification.new do |spec|
48
48
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
49
49
  spec.require_paths = ["lib", "vendor/cli-ui/lib"]
50
50
 
51
+ spec.requirements << "git, v2.0+"
52
+
51
53
  spec.add_runtime_dependency "rainbow", "~> 3.0"
52
54
  spec.add_runtime_dependency "rouge", "~> 3.20"
53
55
  spec.add_runtime_dependency "rubocop", "~> 0.80"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rfix
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.7.pre.61
4
+ version: 1.0.7.pre.65
5
5
  platform: ruby
6
6
  authors:
7
7
  - Linus Oleander
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-06-17 00:00:00.000000000 Z
11
+ date: 2020-06-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rainbow
@@ -96,7 +96,8 @@ files:
96
96
  - exe/rfix
97
97
  - lib/rfix.rb
98
98
  - lib/rfix/cmd.rb
99
- - lib/rfix/extensions.rb
99
+ - lib/rfix/extensions/extensions.rb
100
+ - lib/rfix/extensions/offense.rb
100
101
  - lib/rfix/formatter.rb
101
102
  - lib/rfix/git_file.rb
102
103
  - lib/rfix/git_helper.rb
@@ -151,7 +152,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
151
152
  - - ">"
152
153
  - !ruby/object:Gem::Version
153
154
  version: 1.3.1
154
- requirements: []
155
+ requirements:
156
+ - git, v2.0+
155
157
  rubygems_version: 3.0.3
156
158
  signing_key:
157
159
  specification_version: 4
@@ -1,92 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "rubocop"
4
- require "rainbow"
5
-
6
- module Rfix::Ext
7
- module CommentConfig
8
- # Called by RuboCop on every line to see
9
- # if its suppose to run against it or not
10
- def cop_enabled_at_line?(_cop, line)
11
- Rfix.enabled?(processed_source.file_path, line) && super
12
- end
13
- end
14
-
15
- module Runner
16
- # Called _after_ @source has been 'auto fixed' by Rubocop
17
- def check_for_infinite_loop(source, offences)
18
- Rfix.refresh!(source); super # TODO: Before or after?
19
- end
20
- end
21
-
22
- module Options
23
- # Appends custom --args to RuboCop CLI
24
- def define_options
25
- super.tap do |options|
26
- @ons.each do |args, block|
27
- option(options, *args, &block)
28
- end
29
- end
30
- end
31
-
32
- # Helper method used by rfix to append cli --args to Rubocop
33
- def on(*args, &block)
34
- @ons ||= []
35
- @ons += [[args, block]]
36
- end
37
- end
38
-
39
- module Offense
40
- def where
41
- line.to_s + ":" + real_column.to_s
42
- end
43
-
44
- def info
45
- message.split(": ", 2).last.delete("\n")
46
- end
47
-
48
- def msg
49
- CLI::UI.resolve_text("{{italic:#{info}}}", truncate_to: CLI::UI::Terminal.width - 10)
50
- end
51
-
52
- def code
53
- message.split(": ", 2).first
54
- end
55
-
56
- def star
57
- Rainbow("⭑")
58
- end
59
-
60
- def cross
61
- Rainbow("✗")
62
- end
63
-
64
- def check
65
- Rainbow("✓")
66
- end
67
-
68
- def level
69
- colors = {
70
- refactor: star.lightcyan,
71
- convention: star.lightblue,
72
- warning: star.lightyellow,
73
- error: cross.indianred,
74
- fatal: cross.lightsalmon
75
- }
76
-
77
- colors[severity.name]
78
- end
79
-
80
- def icon
81
- return check.green if corrected?
82
- return check.lightgreen if correctable?
83
-
84
- cross.indianred
85
- end
86
- end
87
- end
88
-
89
- RuboCop::Options.prepend(Rfix::Ext::Options)
90
- RuboCop::Runner.prepend(Rfix::Ext::Runner)
91
- RuboCop::CommentConfig.prepend(Rfix::Ext::CommentConfig)
92
- RuboCop::Cop::Offense.prepend(Rfix::Ext::Offense)