danger-swiftformat 0.8.1 → 0.9.0

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: b79df1cd49dbf9b086b132f91292f0db8e0bae4cc7118feaa865a1353df10b80
4
- data.tar.gz: 747b28dda4e5917274519b6205fabeaa0ff33f674bbf906387e8d188f6b55de9
3
+ metadata.gz: eef65e57aabf2cf8d1260a48acbd2394b74d1c359548fe058146fc4161649afe
4
+ data.tar.gz: c5d8cf5e39e3d9491b41c2ca941163b046d261647b5382659ce62f8cfc778819
5
5
  SHA512:
6
- metadata.gz: 10a5bec311017e59fae92cf9144a5f2a199993c5e6ad0dc0f60f6634fbdb3868633a8ed2ee99d45a5d61ce414c1fd5e6f431c3b736cecd61d94043a63143497c
7
- data.tar.gz: 16e57a203cf81103dc0aca649e61fc4d14d9e758f73fef76d8c3f48e07f0509809a345e2523d1d3556122ae92ee0fc8cd486924accac25cbad8c83e585b92976
6
+ metadata.gz: 373c74dd0f0a993945361d74a930560112dd6b4132ab466ad789a609608beb3b0b956fd2782cf473aee0bdef679ded7bb0085649c0c9e6b9f5bfcc86d866193b
7
+ data.tar.gz: 8ac70d51871ac7b77d6db6b46ac2d68d4f1385617505554a7136c5aa6fb0b747064242fff6496c8443266410394913a306baabe497e0b835728e56f73654afe6
@@ -8,19 +8,13 @@ on:
8
8
 
9
9
  jobs:
10
10
  test:
11
-
12
11
  runs-on: ubuntu-latest
13
- strategy:
14
- matrix:
15
- ruby-version: ['2.6', '2.7']
16
12
 
17
13
  steps:
18
- - uses: actions/checkout@v2
19
- - name: Set up Ruby
20
- uses: ruby/setup-ruby@v1
14
+ - uses: actions/checkout@v4
15
+ - uses: ruby/setup-ruby@v1
21
16
  with:
22
- ruby-version: ${{ matrix.ruby-version }}
17
+ ruby-version: '3.2'
23
18
  bundler-cache: true # runs 'bundle install' and caches installed gems automatically
24
19
 
25
- - name: Run tests
26
- run: bundle exec rake
20
+ - run: bundle exec rake
data/.rubocop.yml CHANGED
@@ -85,7 +85,7 @@ Metrics/CyclomaticComplexity:
85
85
  Max: 17
86
86
 
87
87
  # Configuration parameters: AllowURI, URISchemes.
88
- Metrics/LineLength:
88
+ Layout/LineLength:
89
89
  Max: 370
90
90
 
91
91
  # Configuration parameters: CountKeywordArgs.
@@ -145,7 +145,7 @@ Layout/HeredocIndentation:
145
145
  Style/SpecialGlobalVars:
146
146
  Enabled: false
147
147
 
148
- PercentLiteralDelimiters:
148
+ Style/PercentLiteralDelimiters:
149
149
  PreferredDelimiters:
150
150
  "%": ()
151
151
  "%i": ()
data/Gemfile CHANGED
@@ -2,4 +2,4 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in danger-swiftformat.gemspec
4
4
  gemspec
5
- gem "faraday", "0.15.4"
5
+ gem "faraday", "2.7.11"
data/Gemfile.lock CHANGED
@@ -1,16 +1,17 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- danger-swiftformat (0.8.1)
4
+ danger-swiftformat (0.9.0)
5
5
  danger-plugin-api (~> 1.0)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- addressable (2.7.0)
11
- public_suffix (>= 2.0.2, < 5.0)
10
+ addressable (2.8.5)
11
+ public_suffix (>= 2.0.2, < 6.0)
12
12
  ast (2.4.2)
13
- claide (1.0.3)
13
+ base64 (0.2.0)
14
+ claide (1.1.0)
14
15
  claide-plugins (0.9.2)
15
16
  cork
16
17
  nap
@@ -19,37 +20,41 @@ GEM
19
20
  colored2 (3.1.2)
20
21
  cork (0.3.0)
21
22
  colored2 (~> 3.1)
22
- danger (8.2.2)
23
+ danger (9.3.2)
23
24
  claide (~> 1.0)
24
25
  claide-plugins (>= 0.9.2)
25
26
  colored2 (~> 3.1)
26
27
  cork (~> 0.1)
27
- faraday (>= 0.9.0, < 2.0)
28
+ faraday (>= 0.9.0, < 3.0)
28
29
  faraday-http-cache (~> 2.0)
29
- git (~> 1.7)
30
+ git (~> 1.13)
30
31
  kramdown (~> 2.3)
31
32
  kramdown-parser-gfm (~> 1.0)
32
33
  no_proxy_fix
33
- octokit (~> 4.7)
34
- terminal-table (~> 1)
34
+ octokit (~> 6.0)
35
+ terminal-table (>= 1, < 4)
35
36
  danger-plugin-api (1.0.0)
36
37
  danger (> 2.0)
37
- diff-lcs (1.4.4)
38
- faraday (0.15.4)
39
- multipart-post (>= 1.2, < 3)
40
- faraday-http-cache (2.2.0)
38
+ diff-lcs (1.5.0)
39
+ faraday (2.7.11)
40
+ base64
41
+ faraday-net_http (>= 2.0, < 3.1)
42
+ ruby2_keywords (>= 0.0.4)
43
+ faraday-http-cache (2.5.0)
41
44
  faraday (>= 0.8)
42
- ffi (1.14.2)
43
- formatador (0.2.5)
44
- git (1.8.1)
45
+ faraday-net_http (3.0.2)
46
+ ffi (1.16.3)
47
+ formatador (1.1.0)
48
+ git (1.18.0)
49
+ addressable (~> 2.8)
45
50
  rchardet (~> 1.8)
46
- guard (2.16.2)
51
+ guard (2.18.1)
47
52
  formatador (>= 0.2.4)
48
53
  listen (>= 2.7, < 4.0)
49
54
  lumberjack (>= 1.0.12, < 2.0)
50
55
  nenv (~> 0.1)
51
56
  notiffany (~> 0.0)
52
- pry (>= 0.9.12)
57
+ pry (>= 0.13.0)
53
58
  shellany (~> 0.0)
54
59
  thor (>= 0.18.1)
55
60
  guard-compat (1.2.1)
@@ -57,54 +62,55 @@ GEM
57
62
  guard (~> 2.1)
58
63
  guard-compat (~> 1.1)
59
64
  rspec (>= 2.99.0, < 4.0)
60
- kramdown (2.3.0)
65
+ kramdown (2.4.0)
61
66
  rexml
62
67
  kramdown-parser-gfm (1.1.0)
63
68
  kramdown (~> 2.0)
64
- listen (3.4.1)
69
+ listen (3.8.0)
65
70
  rb-fsevent (~> 0.10, >= 0.10.3)
66
71
  rb-inotify (~> 0.9, >= 0.9.10)
67
- lumberjack (1.2.8)
72
+ lumberjack (1.2.9)
68
73
  method_source (1.0.0)
69
- multipart-post (2.1.1)
70
74
  nap (1.1.0)
71
75
  nenv (0.3.0)
72
76
  no_proxy_fix (0.1.2)
73
77
  notiffany (0.1.3)
74
78
  nenv (~> 0.1)
75
79
  shellany (~> 0.0)
76
- octokit (4.20.0)
77
- faraday (>= 0.9)
78
- sawyer (~> 0.8.0, >= 0.5.3)
80
+ octokit (6.1.1)
81
+ faraday (>= 1, < 3)
82
+ sawyer (~> 0.9)
79
83
  open4 (1.3.4)
80
- parallel (1.20.1)
81
- parser (3.0.0.0)
84
+ parallel (1.23.0)
85
+ parser (3.2.2.4)
82
86
  ast (~> 2.4.1)
83
- pry (0.13.1)
87
+ racc
88
+ pry (0.14.2)
84
89
  coderay (~> 1.1)
85
90
  method_source (~> 1.0)
86
- public_suffix (4.0.6)
87
- rainbow (3.0.0)
91
+ public_suffix (5.0.3)
92
+ racc (1.7.3)
93
+ rainbow (3.1.1)
88
94
  rake (12.3.3)
89
- rb-fsevent (0.10.4)
95
+ rb-fsevent (0.11.2)
90
96
  rb-inotify (0.10.1)
91
97
  ffi (~> 1.0)
92
98
  rchardet (1.8.0)
93
- regexp_parser (2.0.3)
94
- rexml (3.2.4)
95
- rspec (3.10.0)
96
- rspec-core (~> 3.10.0)
97
- rspec-expectations (~> 3.10.0)
98
- rspec-mocks (~> 3.10.0)
99
- rspec-core (3.10.1)
100
- rspec-support (~> 3.10.0)
101
- rspec-expectations (3.10.1)
99
+ regexp_parser (2.8.2)
100
+ rexml (3.2.6)
101
+ rspec (3.12.0)
102
+ rspec-core (~> 3.12.0)
103
+ rspec-expectations (~> 3.12.0)
104
+ rspec-mocks (~> 3.12.0)
105
+ rspec-core (3.12.2)
106
+ rspec-support (~> 3.12.0)
107
+ rspec-expectations (3.12.3)
102
108
  diff-lcs (>= 1.2.0, < 2.0)
103
- rspec-support (~> 3.10.0)
104
- rspec-mocks (3.10.1)
109
+ rspec-support (~> 3.12.0)
110
+ rspec-mocks (3.12.6)
105
111
  diff-lcs (>= 1.2.0, < 2.0)
106
- rspec-support (~> 3.10.0)
107
- rspec-support (3.10.1)
112
+ rspec-support (~> 3.12.0)
113
+ rspec-support (3.12.1)
108
114
  rubocop (0.93.1)
109
115
  parallel (~> 1.10)
110
116
  parser (>= 2.7.1.5)
@@ -114,18 +120,19 @@ GEM
114
120
  rubocop-ast (>= 0.6.0)
115
121
  ruby-progressbar (~> 1.7)
116
122
  unicode-display_width (>= 1.4.0, < 2.0)
117
- rubocop-ast (1.4.0)
118
- parser (>= 2.7.1.5)
119
- ruby-progressbar (1.11.0)
120
- sawyer (0.8.2)
123
+ rubocop-ast (1.30.0)
124
+ parser (>= 3.2.1.0)
125
+ ruby-progressbar (1.13.0)
126
+ ruby2_keywords (0.0.5)
127
+ sawyer (0.9.2)
121
128
  addressable (>= 2.3.5)
122
- faraday (> 0.8, < 2.0)
129
+ faraday (>= 0.17.3, < 3)
123
130
  shellany (0.0.1)
124
- terminal-table (1.8.0)
125
- unicode-display_width (~> 1.1, >= 1.1.1)
126
- thor (1.1.0)
127
- unicode-display_width (1.7.0)
128
- yard (0.9.26)
131
+ terminal-table (3.0.2)
132
+ unicode-display_width (>= 1.1.1, < 3)
133
+ thor (1.3.0)
134
+ unicode-display_width (1.8.0)
135
+ yard (0.9.34)
129
136
 
130
137
  PLATFORMS
131
138
  ruby
@@ -133,7 +140,7 @@ PLATFORMS
133
140
  DEPENDENCIES
134
141
  bundler (~> 2.1)
135
142
  danger-swiftformat!
136
- faraday (= 0.15.4)
143
+ faraday (= 2.7.11)
137
144
  guard (~> 2.14)
138
145
  guard-rspec (~> 4.7)
139
146
  listen (~> 3.1)
@@ -144,4 +151,4 @@ DEPENDENCIES
144
151
  yard (~> 0.9)
145
152
 
146
153
  BUNDLED WITH
147
- 2.2.6
154
+ 2.4.22
data/README.md CHANGED
@@ -63,6 +63,12 @@ certain directories or files such as `Pods`, you can use the `exclude` parameter
63
63
  swiftformat.exclude = %w(Pods/** Carthage/** Sources/Nope.swift **/*_autogenerated.swift)
64
64
  ```
65
65
 
66
+ If you want the format results shows in the diff instead of a comment, you can use the `inline_mode` option. Violations that are out of the diff will be shown in danger's fail or warn section:
67
+
68
+ ```ruby
69
+ swiftformat.inline_mode = true
70
+ ```
71
+
66
72
  The `exclude` option takes an array of glob patterns; you can find additional documentation on the patterns
67
73
  [here](https://ruby-doc.org/core-2.6.3/File.html#method-c-fnmatch).
68
74
 
@@ -1,3 +1,3 @@
1
1
  module Swiftformat
2
- VERSION = "0.8.1".freeze
2
+ VERSION = "0.9.0".freeze
3
3
  end
@@ -34,6 +34,11 @@ module Danger
34
34
  # @return [String]
35
35
  attr_accessor :swiftversion
36
36
 
37
+ # Show issues inline in the diff instead of in a comment.
38
+ #
39
+ # @return [Boolean]
40
+ attr_accessor :inline_mode
41
+
37
42
  # Runs swiftformat
38
43
  #
39
44
  # @param [Boolean] fail_on_error
@@ -56,20 +61,24 @@ module Danger
56
61
  # Stop processing if the errors array is empty
57
62
  return if results[:errors].empty?
58
63
 
59
- # Process the errors
60
- message = "### SwiftFormat found issues:\n\n"
61
- message << "| File | Rules |\n"
62
- message << "| ---- | ----- |\n"
63
- results[:errors].each do |error|
64
- message << "| #{error[:file].gsub("#{Dir.pwd}/", '')} | #{error[:rules].join(', ')} |\n"
64
+ if inline_mode
65
+ send_inline_comment(results, fail_on_error ? :fail : :warn)
66
+ else
67
+ # Process the errors
68
+ message = "### SwiftFormat found issues:\n\n"
69
+ message << "| File | Rules |\n"
70
+ message << "| ---- | ----- |\n"
71
+ results[:errors].each do |error|
72
+ message << "| #{error[:file].gsub("#{Dir.pwd}/", '')} | #{error[:rules].join(', ')} |\n"
73
+ end
74
+
75
+ unless additional_message.nil?
76
+ message << "\n" << additional_message
77
+ end
78
+
79
+ markdown message
65
80
  end
66
81
 
67
- unless additional_message.nil?
68
- message << "\n" << additional_message
69
- end
70
-
71
- markdown message
72
-
73
82
  if fail_on_error
74
83
  fail "SwiftFormat found issues"
75
84
  end
@@ -95,6 +104,24 @@ module Danger
95
104
  .sort
96
105
  end
97
106
 
107
+ # Send inline comment with danger's warn or fail method
108
+ #
109
+ # @return [void]
110
+ def send_inline_comment(results, method)
111
+ results[:errors].each do |error|
112
+ file = error[:file]
113
+ file_components = file.split(":")
114
+ line = file_components[1]
115
+ filename = file_components.first.split("/").last
116
+ file_path = file_components.first
117
+
118
+ message = error[:rules].join(", ").to_s.dup
119
+ message << " `#{filename}:#{line}`" # file:line for pasting into Xcode Quick Open
120
+
121
+ send(method, message, file: file_path, line: line)
122
+ end
123
+ end
124
+
98
125
  # Constructs the SwiftFormat class
99
126
  #
100
127
  # @return [SwiftFormat]
@@ -211,6 +211,19 @@ module Danger
211
211
  status = @sut.status_report
212
212
  expect(status[:errors]).to be_empty
213
213
  expect(status[:markdowns]).to_not be_empty
214
+ expect(status[:warnings]).to be_empty
215
+ end
216
+
217
+ it "should send inline comments when inline_mode is true" do
218
+ @sut.inline_mode = true
219
+
220
+ @sut.check_format
221
+
222
+ status = @sut.status_report
223
+ p status
224
+ expect(status[:errors]).to be_empty
225
+ expect(status[:markdowns]).to be_empty
226
+ expect(status[:warnings]).to_not be_empty
214
227
  end
215
228
  end
216
229
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: danger-swiftformat
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vincent Garrigues
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-01-26 00:00:00.000000000 Z
11
+ date: 2023-11-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: danger-plugin-api
@@ -188,7 +188,7 @@ licenses:
188
188
  - MIT
189
189
  metadata:
190
190
  github_repo: ssh://github.com/garriguv/danger-ruby-swiftformat
191
- post_install_message:
191
+ post_install_message:
192
192
  rdoc_options: []
193
193
  require_paths:
194
194
  - lib
@@ -203,8 +203,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
203
203
  - !ruby/object:Gem::Version
204
204
  version: '0'
205
205
  requirements: []
206
- rubygems_version: 3.1.4
207
- signing_key:
206
+ rubygems_version: 3.4.10
207
+ signing_key:
208
208
  specification_version: 4
209
209
  summary: A danger plugin for checking Swift formatting using SwiftFormat.
210
210
  test_files: