danger-ktlint 0.0.2 → 0.0.3

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
  SHA256:
3
- metadata.gz: 9214f9181e86cf209334e8b1f571ba7feb327b6b155aab65cabfb10897c05b82
4
- data.tar.gz: fe8ee017fd08f7571245f150a8b41c79961dd132d38ce05058972dab8ca484c0
3
+ metadata.gz: 60e18440651f2b42cb1d710fa157ee9391aa80894dd1e31bf2b43a7198cb80e3
4
+ data.tar.gz: b507278d2b29a2361afe704699c17c12373adb2ad82d91e7b44e44aec35dc77e
5
5
  SHA512:
6
- metadata.gz: 358a13a92ee3b69c3ec2202a1eac4a830b38beedd225cf2669ec4a2893cd551176a7e8e08b02e45a5010f30ad8ed294e001f763501b4218969376174c69caacc
7
- data.tar.gz: 77e4e6084228c7cf2f08bc4c44f9475188125e29af700798b665ef8ed7c8050674507d68b028894a346db5b09117ad0ac34ddd3116136cbc095dd36bc81a4878
6
+ metadata.gz: cd061ab55bbc11530c44686f8d1d872363428624fa63065e8e2631d8f703da7d853f1abb7692bd1e8dcf65e2bb38831cd70de2d4da45c05ba2385c8a9148668d
7
+ data.tar.gz: 8e28ec29136da819926e73dc6e5263fb9150455caf15cffb29b6ea98cf888bd742ad660ac4466a6a96ca62cf4da0738d4981dd9d79ee4eb48c5331a0ffa76c88
@@ -0,0 +1,11 @@
1
+ ## 0.3.0
2
+ ### Added
3
+ - `limit` parameter to set the maximum number of comments of ktlint results.
4
+
5
+ ## 0.2.0
6
+ ### Added
7
+ - Inline comment feature (`inline_mode: true` with ktlint.lint)
8
+
9
+ ## 0.1.0
10
+ ### Added
11
+ - Run ktlint by ktlint.lint
data/README.md CHANGED
@@ -14,7 +14,7 @@ You need to install `ktlint` command and set as executable first, see: https://k
14
14
 
15
15
  ```bash
16
16
  # Example
17
- $ curl --output /usr/local/bin/ktlint -sL https://github.com/shyiko/ktlint/releases/download/$KTLINT_VERSION/ktlint && chmod a+x /usr/loca/bin/ktlint
17
+ $ curl --output /usr/local/bin/ktlint -sL https://github.com/pinterest/ktlint/releases/download/$KTLINT_VERSION/ktlint && chmod a+x /usr/local/bin/ktlint
18
18
  ```
19
19
 
20
20
  Add this to Dangerfile.
@@ -26,6 +26,21 @@ ktlint.lint
26
26
  ktlint.lint(inline_mode: true)
27
27
  ```
28
28
 
29
+ ### Options
30
+ #### Set maximum number of comments of ktlint results
31
+
32
+ Default is `nil`, all comments are sent.
33
+
34
+ ```bash
35
+ ktlint.limit = 3
36
+ ktlint.lint
37
+ ```
38
+
39
+
40
+ ## CHANGELOG
41
+
42
+ See [CHANGELOG.md](https://github.com/mataku/danger-ktlint/blob/master/CHANGELOG.md).
43
+
29
44
  ## TODO
30
45
 
31
46
  - filtering: false (default: filtering: true behavior)
@@ -21,29 +21,18 @@ Gem::Specification.new do |spec|
21
21
  spec.add_runtime_dependency 'danger-plugin-api', '~> 1.0'
22
22
 
23
23
  # General ruby development
24
- spec.add_development_dependency 'bundler', '~> 1.3'
25
- spec.add_development_dependency 'rake', '~> 10.0'
24
+ spec.add_development_dependency 'bundler', '~> 2.0'
25
+ spec.add_development_dependency 'rake'
26
26
 
27
27
  # Testing support
28
28
  spec.add_development_dependency 'rspec', '~> 3.4'
29
29
 
30
30
  # Linting code and docs
31
31
  spec.add_development_dependency "rubocop"
32
- spec.add_development_dependency "yard"
33
32
 
34
33
  # Makes testing easy via `bundle exec guard`
35
34
  spec.add_development_dependency 'guard', '~> 2.14'
36
35
  spec.add_development_dependency 'guard-rspec', '~> 4.7'
37
36
 
38
- # If you want to work on older builds of ruby
39
- spec.add_development_dependency 'listen', '3.0.7'
40
-
41
- # This gives you the chance to run a REPL inside your tests
42
- # via:
43
- #
44
- # require 'pry'
45
- # binding.pry
46
- #
47
- # This will stop test execution and let you inspect the results
48
37
  spec.add_development_dependency 'pry'
49
38
  end
@@ -1,3 +1,3 @@
1
1
  module Ktlint
2
- VERSION = "0.0.2".freeze
2
+ VERSION = "0.0.3".freeze
3
3
  end
@@ -2,9 +2,25 @@ require 'json'
2
2
 
3
3
  module Danger
4
4
  class DangerKtlint < Plugin
5
+
6
+ class UnexpectedLimitTypeError < StandardError
7
+ end
8
+
5
9
  # TODO: Lint all files if `filtering: false`
6
10
  attr_accessor :filtering
7
11
 
12
+ def limit
13
+ @limit ||= nil
14
+ end
15
+
16
+ def limit=(limit)
17
+ if limit != nil && limit.integer?
18
+ @limit = limit
19
+ else
20
+ raise UnexpectedLimitTypeError
21
+ end
22
+ end
23
+
8
24
  # Run ktlint task using command line interface
9
25
  # Will fail if `ktlint` is not installed
10
26
  # Skip lint task if files changed are empty
@@ -46,22 +62,40 @@ module Danger
46
62
  # }
47
63
  # ]
48
64
  def send_markdown_comment(results)
49
- results.each {|result|
50
- result['errors'].each {|error|
51
- file = "#{result['file']}#L#{error['line']}"
52
- message = "#{github.html_link(file)} has linter issue: #{error['message']}"
53
- fail(message)
54
- }
55
- }
65
+ catch(:loop_break) do
66
+ count = 0
67
+ results.each do |result|
68
+ result['errors'].each do |error|
69
+ file = "#{result['file']}#L#{error['line']}"
70
+ message = "#{github.html_link(file)}: #{error['message']}"
71
+ fail(message)
72
+ unless limit.nil?
73
+ count += 1
74
+ if count >= limit
75
+ throw(:loop_break)
76
+ end
77
+ end
78
+ end
79
+ end
80
+ end
56
81
  end
57
82
 
58
83
  def send_inline_comments(results)
59
- results.each do |result|
60
- result['errors'].each do |error|
61
- file = result['file']
62
- message = error['message']
63
- line = error['line']
64
- fail(message, file: result['file'], line: line)
84
+ catch(:loop_break) do
85
+ count = 0
86
+ results.each do |result|
87
+ result['errors'].each do |error|
88
+ file = result['file']
89
+ message = error['message']
90
+ line = error['line']
91
+ fail(message, file: result['file'], line: line)
92
+ unless limit.nil?
93
+ count += 1
94
+ if count >= limit
95
+ throw(:loop_break)
96
+ end
97
+ end
98
+ end
65
99
  end
66
100
  end
67
101
  end
@@ -7,6 +7,12 @@
7
7
  "column": 1,
8
8
  "message": "Unexpected blank line(s) before \"}\"",
9
9
  "rule": "no-blank-line-before-rbrace"
10
+ },
11
+ {
12
+ "line": 47,
13
+ "column": 1,
14
+ "message": "Unexpected blank line(s) before \"}\"",
15
+ "rule": "no-blank-line-before-rbrace"
10
16
  }
11
17
  ]
12
18
  }
@@ -31,11 +31,12 @@ module Danger
31
31
  allow_any_instance_of(Kernel).to receive(:system).with('which ktlint > /dev/null 2>&1').and_return(true)
32
32
  allow_any_instance_of(Kernel).to receive(:`).with('ktlint app/src/main/java/com/mataku/Model.kt --reporter=json --relative').and_return(dummy_ktlint_result)
33
33
  allow_any_instance_of(Danger::DangerfileGitHubPlugin).to receive(:html_link).with('app/src/main/java/com/mataku/Model.kt#L46').and_return("<a href='https://github.com/mataku/android/blob/561827e46167077b5e53515b4b7349b8ae04610b/Model.kt'>Model.kt</a>")
34
+ allow_any_instance_of(Danger::DangerfileGitHubPlugin).to receive(:html_link).with('app/src/main/java/com/mataku/Model.kt#L47').and_return("<a href='https://github.com/mataku/android/blob/561827e46167077b5e53515b4b7349b8ae04610b/Model.kt'>Model.kt</a>")
34
35
  end
35
36
 
36
37
  it 'Sends markdown comment' do
37
38
  plugin.lint
38
- expect(dangerfile.status_report[:errors].size).to eq(1)
39
+ expect(dangerfile.status_report[:errors].size).to eq(2)
39
40
  end
40
41
  end
41
42
 
@@ -47,7 +48,41 @@ module Danger
47
48
 
48
49
  it 'Sends inline comment' do
49
50
  plugin.lint(inline_mode: true)
50
- expect(dangerfile.status_report[:errors].size).to eq(1)
51
+ expect(dangerfile.status_report[:errors].size).to eq(2)
52
+ end
53
+ end
54
+ end
55
+
56
+ describe '#limit' do
57
+ context 'expected limit value is set' do
58
+ it 'raises UnexpectedLimitTypeError' do
59
+ expect { plugin.limit = nil }.to raise_error(DangerKtlint::UnexpectedLimitTypeError)
60
+ end
61
+ end
62
+
63
+ context 'integer value is set to limit' do
64
+ it 'raises no errors' do
65
+ expect { plugin.limit = 1 }.not_to raise_error(DangerKtlint::UnexpectedLimitTypeError)
66
+ end
67
+ end
68
+ end
69
+
70
+ describe '#send_markdown_comment' do
71
+ let(:limit) { 1 }
72
+
73
+ before do
74
+ allow_any_instance_of(Danger::DangerfileGitPlugin).to receive(:added_files).and_return(['app/src/main/java/com/mataku/Model.kt'])
75
+ allow_any_instance_of(Danger::DangerfileGitPlugin).to receive(:modified_files).and_return([])
76
+
77
+ allow_any_instance_of(Kernel).to receive(:system).with('which ktlint > /dev/null 2>&1').and_return(true)
78
+ allow_any_instance_of(Kernel).to receive(:`).with('ktlint app/src/main/java/com/mataku/Model.kt --reporter=json --relative').and_return(dummy_ktlint_result)
79
+ plugin.limit = limit
80
+ end
81
+
82
+ context 'limit is set' do
83
+ it 'equals number of ktlint results to limit' do
84
+ plugin.lint(inline_mode: true)
85
+ expect(dangerfile.status_report[:errors].size).to eq(limit)
51
86
  end
52
87
  end
53
88
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: danger-ktlint
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - mataku
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-11-13 00:00:00.000000000 Z
11
+ date: 2020-06-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: danger-plugin-api
@@ -30,28 +30,28 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.3'
33
+ version: '2.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.3'
40
+ version: '2.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '10.0'
47
+ version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '10.0'
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -80,20 +80,6 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: yard
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: guard
99
85
  requirement: !ruby/object:Gem::Requirement
@@ -122,20 +108,6 @@ dependencies:
122
108
  - - "~>"
123
109
  - !ruby/object:Gem::Version
124
110
  version: '4.7'
125
- - !ruby/object:Gem::Dependency
126
- name: listen
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - '='
130
- - !ruby/object:Gem::Version
131
- version: 3.0.7
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - '='
137
- - !ruby/object:Gem::Version
138
- version: 3.0.7
139
111
  - !ruby/object:Gem::Dependency
140
112
  name: pry
141
113
  requirement: !ruby/object:Gem::Requirement
@@ -160,6 +132,7 @@ files:
160
132
  - ".circleci/config.yml"
161
133
  - ".gitignore"
162
134
  - ".rubocop.yml"
135
+ - CHANGELOG.md
163
136
  - Gemfile
164
137
  - Guardfile
165
138
  - LICENSE.txt
@@ -192,8 +165,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
192
165
  - !ruby/object:Gem::Version
193
166
  version: '0'
194
167
  requirements: []
195
- rubyforge_project:
196
- rubygems_version: 2.7.6
168
+ rubygems_version: 3.1.2
197
169
  signing_key:
198
170
  specification_version: 4
199
171
  summary: Lint kotlin files using ktlint command line interface.