danger-ktlint 0.0.2 → 0.0.3

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: 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.