danger-rubocop 0.4.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2a006c7c8dafc7fa51b8fe5aff38764b20502b4c
4
- data.tar.gz: be9b290a729911dc21cc8a947ac75f22c739f800
3
+ metadata.gz: 123e71c280e842bce2f03b4b6057a4e838a5337b
4
+ data.tar.gz: 896db4ec175e20179a7b4b23d6be8b2d01426953
5
5
  SHA512:
6
- metadata.gz: cba8556356a8f29cf276cd88a0ce8e4ddd31870b0a6056bab8e0295a84a922e174b40fb636c2bd7381baf742f6111e46fc5cb2f7d4821d38dceff8db5bc6756c
7
- data.tar.gz: 2e691ab029fa2145137dd7bdde399595ae8a2f6c7fde332f1d028cc1ad71c4b24cb84409e2d378a2401e30fced437c803dbb9fcecfaeba61f2963e16f848c510
6
+ metadata.gz: 3ee6a09ae722401c210e4cbf2c3d5ba825bfbcd16bcf533ab8c596d752d983ae9ffe2067cb04605fcaf361b7d3576563b60880cb8d09844b4fb87fe34999fa7f
7
+ data.tar.gz: 8248e12f7f623e3382807fd69210f14833f0e9878196fca099101c21dc93fb63d4f074f47c579090626d70add350a24d10d08149f740303786b0ee4c3fc33268
data/README.md CHANGED
@@ -33,12 +33,21 @@ rubocop.lint public_files
33
33
 
34
34
  #### Methods
35
35
 
36
+ `lint(config: Hash)`
36
37
 
37
- `lint(files: String)`
38
+ Runs Ruby files through Rubocop. Generates a `markdown` list of warnings.
38
39
 
39
- Runs Ruby files through Rubocop. Generates a `markdown` list of warnings.
40
+ This method accepts configuration hash.
41
+ The following keys are supported:
40
42
 
43
+ * `files`: array of file names or glob patterns to determine files to lint
44
+ * `force_exclusion`: pass `true` to pass `--force-exclusion` argument to Rubocop.
45
+ * `inline_comment`: pass `true` to comment inline of the diffs.
46
+
47
+ (this option will instruct rubocop to ignore the files that your rubocop config ignores,
48
+ despite the plugin providing the list of files explicitely)
41
49
 
50
+ Passing `files` as only argument is also supported for backward compatibility.
42
51
 
43
52
  ## License
44
53
 
@@ -30,13 +30,18 @@ module Danger
30
30
  config = config.is_a?(Hash) ? config : { files: config }
31
31
  files = config[:files]
32
32
  force_exclusion = config[:force_exclusion] || false
33
+ inline_comment = config[:inline_comment] || false
33
34
 
34
35
  files_to_lint = fetch_files_to_lint(files)
35
36
  files_to_report = rubocop(files_to_lint, force_exclusion)
36
37
 
37
38
  return if files_to_report.empty?
38
39
 
39
- markdown offenses_message(files_to_report)
40
+ if inline_comment
41
+ warn_each_line(files_to_report)
42
+ else
43
+ markdown offenses_message(files_to_report)
44
+ end
40
45
  end
41
46
 
42
47
  private
@@ -67,6 +72,14 @@ module Danger
67
72
  message + table.split("\n")[1..-2].join("\n")
68
73
  end
69
74
 
75
+ def warn_each_line(offending_files)
76
+ offending_files.flat_map do |file|
77
+ file['offenses'].map do |offense|
78
+ warn(offense['message'], file: file['path'], line: offense['location']['line'])
79
+ end
80
+ end
81
+ end
82
+
70
83
  def fetch_files_to_lint(files = nil)
71
84
  to_lint = (files ? Dir.glob(files) : (git.modified_files + git.added_files))
72
85
  Shellwords.join(to_lint)
@@ -1,3 +1,3 @@
1
1
  module DangerRubocop
2
- VERSION = '0.4.1'.freeze
2
+ VERSION = '0.5.0'.freeze
3
3
  end
@@ -129,6 +129,20 @@ EOS
129
129
  expect(@rubocop.status_report[:markdowns].first.message).to eq(formatted_table.chomp)
130
130
  end
131
131
 
132
+ it 'is reported as line by line' do
133
+ allow(@rubocop.git).to receive(:modified_files)
134
+ .and_return(['spec/fixtures/ruby_file.rb'])
135
+ allow(@rubocop.git).to receive(:added_files).and_return([])
136
+ allow(@rubocop).to receive(:`)
137
+ .with('bundle exec rubocop -f json spec/fixtures/ruby_file.rb')
138
+ .and_return(response_ruby_file)
139
+
140
+ @rubocop.lint(inline_comment: true)
141
+
142
+ expect(@rubocop.violation_report[:warnings].first.to_s)
143
+ .to eq("Violation Don't do that! { sticky: false, file: spec/fixtures/ruby_file.rb, line: 13 }")
144
+ end
145
+
132
146
  describe 'a filename with special characters' do
133
147
  it 'is shell escaped' do
134
148
  modified_files = [
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: danger-rubocop
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ash Furrow
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-19 00:00:00.000000000 Z
11
+ date: 2017-09-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: danger