danger-swiftformat 0.8.0 → 0.9.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
  SHA256:
3
- metadata.gz: 988d028ab6f8530bdbd0aac2e2db2b0cc7f1ec0176bf6ed4e91551acf10550fd
4
- data.tar.gz: d1f276c732588da77f9028f723a4420b873e6ec1354afac91e6422ea55b757f6
3
+ metadata.gz: eef65e57aabf2cf8d1260a48acbd2394b74d1c359548fe058146fc4161649afe
4
+ data.tar.gz: c5d8cf5e39e3d9491b41c2ca941163b046d261647b5382659ce62f8cfc778819
5
5
  SHA512:
6
- metadata.gz: e49d217585203fb321a0b25501ed39e6f7a891101d7ed625abfbc833a9a093599880cde86a680530f6e2a1807962dadb2fa2fdbb18304faf3b6d1342f745ca33
7
- data.tar.gz: d3d444466a38ecef5b339e2e04e1a22ffce3015d3629ea5df375165f7c8aa34d39364246361303b348c766221f06659db8fc5087ea00a154e3838c9244b68b66
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.0)
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.0".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]
@@ -14,7 +14,7 @@ module Danger
14
14
  cmd = [@path] + files
15
15
  cmd << additional_args.split unless additional_args.nil? || additional_args.empty?
16
16
 
17
- unless swiftversion.empty?
17
+ unless swiftversion.nil? || swiftversion.empty?
18
18
  cmd << "--swiftversion"
19
19
  cmd << swiftversion
20
20
  end
@@ -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
@@ -95,7 +95,7 @@ RSpec.describe Danger::SwiftFormat do
95
95
  }
96
96
  }
97
97
 
98
- expect(@sut.check_format(%w(.), nil)).to eq(output)
98
+ expect(@sut.check_format(%w(.), nil, nil)).to eq(output)
99
99
  end
100
100
 
101
101
  it "should support additional command line arguments" do
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.0
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-23 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: