danger-periphery 0.2.0 → 0.2.1

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.
data/.rubocop.yml DELETED
@@ -1,338 +0,0 @@
1
- # Defaults can be found here: https://github.com/bbatsov/rubocop/blob/master/config/default.yml
2
-
3
- # If you don't like these settings, just delete this file :)
4
-
5
- AllCops:
6
- TargetRubyVersion: 2.6
7
- SuggestExtensions: false
8
-
9
- Style/StringLiterals:
10
- EnforcedStyle: double_quotes
11
- Enabled: true
12
-
13
- # kind_of? is a good way to check a type
14
- Style/ClassCheck:
15
- EnforcedStyle: kind_of?
16
-
17
- # specs sometimes have useless assignments, which is fine
18
- Lint/UselessAssignment:
19
- Exclude:
20
- - '**/spec/**/*'
21
-
22
- # We could potentially enable the 2 below:
23
- Layout/FirstHashElementIndentation:
24
- Enabled: false
25
-
26
- Layout/HashAlignment:
27
- Enabled: false
28
-
29
- # HoundCI doesn't like this rule
30
- Layout/DotPosition:
31
- Enabled: false
32
-
33
- # We allow !! as it's an easy way to convert ot boolean
34
- Style/DoubleNegation:
35
- Enabled: false
36
-
37
- # Cop supports --auto-correct.
38
- Lint/UnusedBlockArgument:
39
- Enabled: false
40
-
41
- # We want to allow class Fastlane::Class
42
- Style/ClassAndModuleChildren:
43
- Enabled: false
44
-
45
- Metrics/AbcSize:
46
- Max: 60
47
-
48
- # The %w might be confusing for new users
49
- Style/WordArray:
50
- MinSize: 19
51
-
52
- # raise and fail are both okay
53
- Style/SignalException:
54
- Enabled: false
55
-
56
- # Better too much 'return' than one missing
57
- Style/RedundantReturn:
58
- Enabled: false
59
-
60
- # Having if in the same line might not always be good
61
- Style/IfUnlessModifier:
62
- Enabled: false
63
-
64
- # and and or is okay
65
- Style/AndOr:
66
- Enabled: false
67
-
68
- # Configuration parameters: CountComments.
69
- Metrics/ClassLength:
70
- Max: 350
71
-
72
- Metrics/CyclomaticComplexity:
73
- Max: 17
74
-
75
- # Configuration parameters: AllowURI, URISchemes.
76
- Layout/LineLength:
77
- Max: 370
78
-
79
- # Configuration parameters: CountKeywordArgs.
80
- Metrics/ParameterLists:
81
- Max: 10
82
-
83
- Metrics/PerceivedComplexity:
84
- Max: 18
85
-
86
- # Sometimes it's easier to read without guards
87
- Style/GuardClause:
88
- Enabled: false
89
-
90
- # something = if something_else
91
- # that's confusing
92
- Style/ConditionalAssignment:
93
- Enabled: false
94
-
95
- # Better to have too much self than missing a self
96
- Style/RedundantSelf:
97
- Enabled: false
98
-
99
- Metrics/MethodLength:
100
- Max: 60
101
-
102
- # We're not there yet
103
- Style/Documentation:
104
- Enabled: false
105
-
106
- # Adds complexity
107
- Style/IfInsideElse:
108
- Enabled: false
109
-
110
- # danger specific
111
-
112
- Style/BlockComments:
113
- Enabled: false
114
-
115
- Layout/MultilineMethodCallIndentation:
116
- EnforcedStyle: indented
117
-
118
- # FIXME: 25
119
- Metrics/BlockLength:
120
- Max: 345
121
- Exclude:
122
- - "**/*_spec.rb"
123
-
124
- Style/MixinGrouping:
125
- Enabled: false
126
-
127
- Naming/BlockForwarding:
128
- Enabled: true
129
-
130
- Naming/FileName:
131
- Enabled: false
132
-
133
- Layout/HeredocIndentation:
134
- Enabled: false
135
-
136
- Style/SpecialGlobalVars:
137
- Enabled: false
138
-
139
- Style/PercentLiteralDelimiters:
140
- PreferredDelimiters:
141
- "%": ()
142
- "%i": ()
143
- "%q": ()
144
- "%Q": ()
145
- "%r": "{}"
146
- "%s": ()
147
- "%w": ()
148
- "%W": ()
149
- "%x": ()
150
-
151
- Security/CompoundHash:
152
- Enabled: true
153
-
154
- Security/YAMLLoad:
155
- Enabled: false
156
-
157
- Gemspec/DeprecatedAttributeAssignment:
158
- Enabled: true
159
-
160
- Gemspec/RequireMFA:
161
- Enabled: true
162
-
163
- Layout/LineContinuationLeadingSpace:
164
- Enabled: true
165
-
166
- Layout/LineContinuationSpacing:
167
- Enabled: true
168
-
169
- Layout/LineEndStringConcatenationIndentation:
170
- Enabled: true
171
-
172
- Layout/SpaceBeforeBrackets:
173
- Enabled: true
174
-
175
- Lint/AmbiguousAssignment:
176
- Enabled: true
177
-
178
- Lint/AmbiguousOperatorPrecedence:
179
- Enabled: true
180
-
181
- Lint/AmbiguousRange:
182
- Enabled: true
183
-
184
- Lint/ConstantOverwrittenInRescue:
185
- Enabled: true
186
-
187
- Lint/DeprecatedConstants:
188
- Enabled: true
189
-
190
- Lint/DuplicateBranch:
191
- Enabled: true
192
-
193
- Lint/DuplicateRegexpCharacterClassElement:
194
- Enabled: true
195
-
196
- Lint/EmptyBlock:
197
- Enabled: true
198
-
199
- Lint/EmptyClass:
200
- Enabled: true
201
-
202
- Lint/EmptyInPattern:
203
- Enabled: true
204
-
205
- Lint/IncompatibleIoSelectWithFiberScheduler:
206
- Enabled: true
207
-
208
- Lint/LambdaWithoutLiteralBlock:
209
- Enabled: true
210
-
211
- Lint/NonAtomicFileOperation:
212
- Enabled: true
213
-
214
- Lint/NoReturnInBeginEndBlocks:
215
- Enabled: true
216
-
217
- Lint/NumberedParameterAssignment:
218
- Enabled: true
219
-
220
- Lint/OrAssignmentToConstant:
221
- Enabled: true
222
-
223
- Lint/RedundantDirGlobSort:
224
- Enabled: true
225
-
226
- Lint/RefinementImportMethods:
227
- Enabled: true
228
-
229
- Lint/RequireRelativeSelfPath:
230
- Enabled: true
231
-
232
- Lint/SymbolConversion:
233
- Enabled: true
234
-
235
- Lint/ToEnumArguments:
236
- Enabled: true
237
-
238
- Lint/TripleQuotes:
239
- Enabled: true
240
-
241
- Lint/UnexpectedBlockArity:
242
- Enabled: true
243
-
244
- Lint/UnmodifiedReduceAccumulator:
245
- Enabled: true
246
-
247
- Lint/UselessRuby2Keywords:
248
- Enabled: true
249
-
250
- Security/IoMethods:
251
- Enabled: true
252
-
253
- Style/ArgumentsForwarding:
254
- Enabled: true
255
-
256
- Style/CollectionCompact:
257
- Enabled: true
258
-
259
- Style/DocumentDynamicEvalDefinition:
260
- Enabled: true
261
-
262
- Style/EndlessMethod:
263
- Enabled: true
264
-
265
- Style/EnvHome:
266
- Enabled: true
267
-
268
- Style/FetchEnvVar:
269
- Enabled: true
270
-
271
- Style/FileRead:
272
- Enabled: true
273
-
274
- Style/FileWrite:
275
- Enabled: true
276
-
277
- Style/HashConversion:
278
- Enabled: true
279
-
280
- Style/HashExcept:
281
- Enabled: true
282
-
283
- Style/IfWithBooleanLiteralBranches:
284
- Enabled: true
285
-
286
- Style/InPatternThen:
287
- Enabled: true
288
-
289
- Style/MapCompactWithConditionalBlock:
290
- Enabled: true
291
-
292
- Style/MapToHash:
293
- Enabled: true
294
-
295
- Style/MultilineInPatternThen:
296
- Enabled: true
297
-
298
- Style/NegatedIfElseCondition:
299
- Enabled: true
300
-
301
- Style/NestedFileDirname:
302
- Enabled: true
303
-
304
- Style/NilLambda:
305
- Enabled: true
306
-
307
- Style/NumberedParameters:
308
- Enabled: true
309
-
310
- Style/NumberedParametersLimit:
311
- Enabled: true
312
-
313
- Style/ObjectThen:
314
- Enabled: true
315
-
316
- Style/OpenStructUse:
317
- Enabled: true
318
-
319
- Style/QuotedSymbols:
320
- Enabled: true
321
-
322
- Style/RedundantArgument:
323
- Enabled: true
324
-
325
- Style/RedundantInitialize:
326
- Enabled: true
327
-
328
- Style/RedundantSelfAssignmentBranch:
329
- Enabled: true
330
-
331
- Style/SelectByRegexp:
332
- Enabled: true
333
-
334
- Style/StringChars:
335
- Enabled: true
336
-
337
- Style/SwapValues:
338
- Enabled: true
data/Dangerfile DELETED
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- rubocop.lint inline_comment: true
4
-
5
- periphery.binary_path = "bin/periphery"
6
- periphery.process_warnings do |path, line, column, message|
7
- !message.match(/unused/i)
8
- end
9
-
10
- periphery.scan(
11
- project: "spec/support/fixtures/test.xcodeproj",
12
- schemes: "test",
13
- targets: "test"
14
- )
data/Gemfile DELETED
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source "https://rubygems.org"
4
-
5
- gemspec
6
-
7
- gem "bundler", "~> 2.0"
8
- gem "danger"
9
- gem "danger-rubocop"
10
- gem "guard"
11
- gem "guard-rspec"
12
- gem "listen"
13
- gem "pry"
14
- gem "rake"
15
- gem "rspec"
16
- gem "rubocop"
17
- gem "yard"
data/Gemfile.lock DELETED
@@ -1,178 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- danger-periphery (0.2.0)
5
- danger-plugin-api (~> 1.0)
6
-
7
- GEM
8
- remote: https://rubygems.org/
9
- specs:
10
- addressable (2.8.0)
11
- public_suffix (>= 2.0.2, < 5.0)
12
- ast (2.4.2)
13
- claide (1.1.0)
14
- claide-plugins (0.9.2)
15
- cork
16
- nap
17
- open4 (~> 1.3)
18
- coderay (1.1.3)
19
- colored2 (3.1.2)
20
- cork (0.3.0)
21
- colored2 (~> 3.1)
22
- danger (8.6.1)
23
- claide (~> 1.0)
24
- claide-plugins (>= 0.9.2)
25
- colored2 (~> 3.1)
26
- cork (~> 0.1)
27
- faraday (>= 0.9.0, < 2.0)
28
- faraday-http-cache (~> 2.0)
29
- git (~> 1.7)
30
- kramdown (~> 2.3)
31
- kramdown-parser-gfm (~> 1.0)
32
- no_proxy_fix
33
- octokit (~> 4.7)
34
- terminal-table (>= 1, < 4)
35
- danger-plugin-api (1.0.0)
36
- danger (> 2.0)
37
- danger-rubocop (0.10.0)
38
- danger
39
- rubocop (~> 1.0)
40
- diff-lcs (1.5.0)
41
- faraday (1.10.0)
42
- faraday-em_http (~> 1.0)
43
- faraday-em_synchrony (~> 1.0)
44
- faraday-excon (~> 1.1)
45
- faraday-httpclient (~> 1.0)
46
- faraday-multipart (~> 1.0)
47
- faraday-net_http (~> 1.0)
48
- faraday-net_http_persistent (~> 1.0)
49
- faraday-patron (~> 1.0)
50
- faraday-rack (~> 1.0)
51
- faraday-retry (~> 1.0)
52
- ruby2_keywords (>= 0.0.4)
53
- faraday-em_http (1.0.0)
54
- faraday-em_synchrony (1.0.0)
55
- faraday-excon (1.1.0)
56
- faraday-http-cache (2.4.0)
57
- faraday (>= 0.8)
58
- faraday-httpclient (1.0.1)
59
- faraday-multipart (1.0.4)
60
- multipart-post (~> 2)
61
- faraday-net_http (1.0.1)
62
- faraday-net_http_persistent (1.2.0)
63
- faraday-patron (1.0.0)
64
- faraday-rack (1.0.0)
65
- faraday-retry (1.0.3)
66
- ffi (1.15.5)
67
- formatador (1.1.0)
68
- git (1.11.0)
69
- rchardet (~> 1.8)
70
- guard (2.18.0)
71
- formatador (>= 0.2.4)
72
- listen (>= 2.7, < 4.0)
73
- lumberjack (>= 1.0.12, < 2.0)
74
- nenv (~> 0.1)
75
- notiffany (~> 0.0)
76
- pry (>= 0.13.0)
77
- shellany (~> 0.0)
78
- thor (>= 0.18.1)
79
- guard-compat (1.2.1)
80
- guard-rspec (4.7.3)
81
- guard (~> 2.1)
82
- guard-compat (~> 1.1)
83
- rspec (>= 2.99.0, < 4.0)
84
- json (2.6.2)
85
- kramdown (2.4.0)
86
- rexml
87
- kramdown-parser-gfm (1.1.0)
88
- kramdown (~> 2.0)
89
- listen (3.7.1)
90
- rb-fsevent (~> 0.10, >= 0.10.3)
91
- rb-inotify (~> 0.9, >= 0.9.10)
92
- lumberjack (1.2.8)
93
- method_source (1.0.0)
94
- multipart-post (2.2.3)
95
- nap (1.1.0)
96
- nenv (0.3.0)
97
- no_proxy_fix (0.1.2)
98
- notiffany (0.1.3)
99
- nenv (~> 0.1)
100
- shellany (~> 0.0)
101
- octokit (4.25.1)
102
- faraday (>= 1, < 3)
103
- sawyer (~> 0.9)
104
- open4 (1.3.4)
105
- parallel (1.22.1)
106
- parser (3.1.2.0)
107
- ast (~> 2.4.1)
108
- pry (0.14.1)
109
- coderay (~> 1.1)
110
- method_source (~> 1.0)
111
- public_suffix (4.0.7)
112
- rainbow (3.1.1)
113
- rake (13.0.6)
114
- rb-fsevent (0.11.1)
115
- rb-inotify (0.10.1)
116
- ffi (~> 1.0)
117
- rchardet (1.8.0)
118
- regexp_parser (2.5.0)
119
- rexml (3.2.5)
120
- rspec (3.11.0)
121
- rspec-core (~> 3.11.0)
122
- rspec-expectations (~> 3.11.0)
123
- rspec-mocks (~> 3.11.0)
124
- rspec-core (3.11.0)
125
- rspec-support (~> 3.11.0)
126
- rspec-expectations (3.11.0)
127
- diff-lcs (>= 1.2.0, < 2.0)
128
- rspec-support (~> 3.11.0)
129
- rspec-mocks (3.11.1)
130
- diff-lcs (>= 1.2.0, < 2.0)
131
- rspec-support (~> 3.11.0)
132
- rspec-support (3.11.0)
133
- rubocop (1.31.2)
134
- json (~> 2.3)
135
- parallel (~> 1.10)
136
- parser (>= 3.1.0.0)
137
- rainbow (>= 2.2.2, < 4.0)
138
- regexp_parser (>= 1.8, < 3.0)
139
- rexml (>= 3.2.5, < 4.0)
140
- rubocop-ast (>= 1.18.0, < 2.0)
141
- ruby-progressbar (~> 1.7)
142
- unicode-display_width (>= 1.4.0, < 3.0)
143
- rubocop-ast (1.19.1)
144
- parser (>= 3.1.1.0)
145
- ruby-progressbar (1.11.0)
146
- ruby2_keywords (0.0.5)
147
- sawyer (0.9.2)
148
- addressable (>= 2.3.5)
149
- faraday (>= 0.17.3, < 3)
150
- shellany (0.0.1)
151
- terminal-table (3.0.2)
152
- unicode-display_width (>= 1.1.1, < 3)
153
- thor (1.2.1)
154
- unicode-display_width (2.2.0)
155
- webrick (1.7.0)
156
- yard (0.9.28)
157
- webrick (~> 1.7.0)
158
-
159
- PLATFORMS
160
- ruby
161
- universal-darwin-20
162
-
163
- DEPENDENCIES
164
- bundler (~> 2.0)
165
- danger
166
- danger-periphery!
167
- danger-rubocop
168
- guard
169
- guard-rspec
170
- listen
171
- pry
172
- rake
173
- rspec
174
- rubocop
175
- yard
176
-
177
- BUNDLED WITH
178
- 2.3.6
data/Guardfile DELETED
@@ -1,48 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ::Guard
4
- class Periphery < Plugin
5
- def initialize(options = {})
6
- opts = options.dup
7
- @command = [
8
- "bin/periphery",
9
- "scan",
10
- "--project",
11
- opts.delete(:project),
12
- "--targets",
13
- opts.delete(:targets),
14
- "--schemes",
15
- opts.delete(:schemes),
16
- "--format",
17
- "checkstyle"
18
- ]
19
- super(opts)
20
- end
21
-
22
- def run_all
23
- UI.info(@command.shelljoin)
24
- system(*@command)
25
- end
26
-
27
- def run_on_changes(_paths)
28
- run_all
29
- end
30
- end
31
- end
32
-
33
- guard :rspec, cmd: "bundle exec rspec -t ~slow", run_all: { cmd: "bundle exec rspec" } do
34
- require "guard/rspec/dsl"
35
- dsl = Guard::RSpec::Dsl.new(self)
36
-
37
- rspec = dsl.rspec
38
- watch(rspec.spec_helper) { rspec.spec_dir }
39
- watch(rspec.spec_support) { rspec.spec_dir }
40
- watch(rspec.spec_files)
41
-
42
- ruby = dsl.ruby
43
- dsl.watch_spec_files_for(ruby.lib_files)
44
- end
45
-
46
- guard :periphery, project: "spec/support/fixtures/test.xcodeproj", targets: "test", schemes: "test" do
47
- watch("spec/support/fixtures/test/main.swift")
48
- end
data/LICENSE.txt DELETED
@@ -1,22 +0,0 @@
1
- Copyright (c) 2021 Ryosuke Ito <rito.0305@gmail.com>
2
-
3
- MIT License
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining
6
- a copy of this software and associated documentation files (the
7
- "Software"), to deal in the Software without restriction, including
8
- without limitation the rights to use, copy, modify, merge, publish,
9
- distribute, sublicense, and/or sell copies of the Software, and to
10
- permit persons to whom the Software is furnished to do so, subject to
11
- the following conditions:
12
-
13
- The above copyright notice and this permission notice shall be
14
- included in all copies or substantial portions of the Software.
15
-
16
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md DELETED
@@ -1,106 +0,0 @@
1
- # danger-periphery
2
-
3
- [![Test](https://github.com/manicmaniac/danger-periphery/actions/workflows/test.yml/badge.svg)](https://github.com/manicmaniac/danger-periphery/actions/workflows/test.yml)
4
-
5
- A Danger plugin to detect unused codes.
6
-
7
- ## Installation
8
-
9
- You need to install [Periphery](https://github.com/peripheryapp/periphery) beforehand.
10
-
11
- Write the following code in your Gemfile.
12
-
13
- ```ruby
14
- gem "danger-periphery"
15
- ```
16
-
17
- ## Usage
18
-
19
- If you already have `.periphery.yml`, the easiest way to use is just add this to your Dangerfile.
20
-
21
- ```ruby
22
- periphery.scan
23
- ```
24
-
25
- You can specify the path to executable in this way.
26
-
27
- ```ruby
28
- periphery.binary_path = "bin/periphery"
29
- ```
30
-
31
- You can pass command line options to `periphery.scan` like the following.
32
- See `periphery scan -h` for available options.
33
-
34
- ```ruby
35
- periphery.scan(
36
- project: "Foo.xcodeproj",
37
- schemes: ["foo", "bar"],
38
- targets: "foo",
39
- clean_build: true
40
- )
41
- ```
42
-
43
- ## Advanced Usage
44
-
45
- ### Postprocess warnings by passing block to `#scan`
46
-
47
- You can modify warnings as you like by passing a block to `scan`.
48
- `scan` takes a block that receives `ScanResult` instance as arguments.
49
- Each `ScanResult` instance corresponds with each entry of Danger warnings.
50
- If that block returns falsy value, danger-periphery suppresses the corresponding warning.
51
-
52
- For example, if you want your team members to be careful with warnings, the following code may work.
53
-
54
- ```ruby
55
- periphery.scan do |violation|
56
- violation.message = "Pay attention please! #{violation.message}"
57
- end
58
- ```
59
-
60
- For another example, if you want to suppress warnings complaining about unused parameter of many of `didChangeValue(_ sender: Any)` methods, you can suppress this kind of warnings in the following way.
61
-
62
- ```ruby
63
- periphery.scan do |violation|
64
- ! violation.message.match(/Parameter 'sender' is unused/)
65
- end
66
- ```
67
-
68
- ### Postprocess warnings by calling `#process_warnings`
69
-
70
- You can modify warnings as you like by passing a block to `process_warnings`.
71
- `process_warnings` takes a block that receives `[path, line, column, message]` as arguments and returns one of the following types.
72
-
73
- - `Array` that exactly contains `[path, line, column, message]`
74
- - `true`
75
- - `false`
76
- - `nil`
77
-
78
- If an `Array` is returned, danger-periphery uses the values in an array instead of the raw result produced by Periphery.
79
- `true` has the same meaning as `[path, line, column, message]`, the argument array as-is.
80
-
81
- If it returns `false` or `nil`, the processing warning will be suppressed.
82
-
83
- For example, if you want your team members to be careful with warnings, the following code may work.
84
-
85
- ```ruby
86
- periphery.process_warnings do |path, line, column, message|
87
- [path, line, column, "Pay attention please! #{message}"]
88
- end
89
- ```
90
-
91
- Or if you want to suppress all `unused` warnings, to return `nil` or `false` in the block works.
92
-
93
- ```ruby
94
- periphery.process_warnings do |path, line, column, message|
95
- !message.match(/unused/i)
96
- end
97
- ```
98
-
99
- ## Development
100
-
101
- 1. Clone this repo
102
- 2. Run `bundle install` to setup dependencies.
103
- 3. Run `bin/download_periphery` to install Periphery.
104
- 4. Run `bundle exec rake spec` to run the tests.
105
- 5. Use `bundle exec guard` to automatically have tests run as you make changes.
106
- 6. Make your changes.