danger-periphery 0.0.1 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/danger_plugin.rb +94 -13
- data/lib/periphery/checkstyle_parser.rb +50 -0
- data/lib/periphery/runner.rb +12 -11
- data/lib/periphery/scan_result.rb +5 -0
- data/lib/periphery.rb +4 -0
- data/lib/version.rb +1 -1
- metadata +11 -36
- data/.github/workflows/lint.yml +0 -12
- data/.github/workflows/test.yml +0 -10
- data/.gitignore +0 -10
- data/.rspec +0 -3
- data/.rubocop.yml +0 -281
- data/Dangerfile +0 -10
- data/Gemfile +0 -18
- data/Guardfile +0 -21
- data/LICENSE.txt +0 -22
- data/README.md +0 -42
- data/Rakefile +0 -25
- data/bin/download_periphery +0 -7
- data/danger-periphery.gemspec +0 -24
- data/lib/periphery/scan_log_parser.rb +0 -20
- data/spec/danger_plugin_spec.rb +0 -88
- data/spec/periphery/runner_spec.rb +0 -78
- data/spec/periphery/scan_log_parser_spec.rb +0 -50
- data/spec/spec_helper.rb +0 -83
- data/spec/support/fixtures/github_pr.json +0 -381
- data/spec/support/fixtures/test/main.swift +0 -3
- data/spec/support/fixtures/test.xcodeproj/project.pbxproj +0 -286
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 15302ed92faf0a3230ddcb167fe3db0ae2e8c1a51d6551d85a4c2cc37c760dd4
|
4
|
+
data.tar.gz: 18880214efa7cb5a29ee9b6872688a6eeb19d805e07cad6c445afeeb24f4cad2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5e33a6b9fa62d733004fb63337fdff4973dd3b38d40a096db0b84a1249bc7789a3612a99a88d31020e22dd6494c3b7d3c953fe721be16347e825a58e8900a177
|
7
|
+
data.tar.gz: 47a37136e81dc9c4b6fc6b3331e476810e4520503c7fd062714363675926c51525502dc58ef2d610b890ee0d73d731d8ac87910bd8e6ab2f051f47c980b4ac88
|
data/lib/danger_plugin.rb
CHANGED
@@ -1,11 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
4
|
-
require "periphery/scan_log_parser"
|
3
|
+
require 'periphery'
|
5
4
|
|
6
5
|
module Danger
|
7
6
|
# Analyze Swift files and detect unused codes in your project.
|
8
|
-
# This is done using
|
7
|
+
# This is done using {https://github.com/peripheryapp/periphery Periphery}.
|
9
8
|
#
|
10
9
|
# @example Specifying options to Periphery.
|
11
10
|
#
|
@@ -16,7 +15,7 @@ module Danger
|
|
16
15
|
# clean_build: true
|
17
16
|
# )
|
18
17
|
#
|
19
|
-
# @see
|
18
|
+
# @see file:README.md
|
20
19
|
# @tags swift
|
21
20
|
class DangerPeriphery < Plugin
|
22
21
|
# Path to Periphery executable.
|
@@ -24,32 +23,114 @@ module Danger
|
|
24
23
|
# @return [String]
|
25
24
|
attr_accessor :binary_path
|
26
25
|
|
26
|
+
# Proc object to process each warnings just before showing them.
|
27
|
+
# The Proc must receive 4 arguments: path, line, column, message
|
28
|
+
# and return one of:
|
29
|
+
# - an array that contains 4 elements [path, line, column, message]
|
30
|
+
# - true
|
31
|
+
# - false
|
32
|
+
# - nil
|
33
|
+
# If Proc returns an array, the warning will be raised based on returned elements.
|
34
|
+
# If Proc returns true, the warning will not be modified.
|
35
|
+
# If Proc returns false or nil, the warning will be ignored.
|
36
|
+
#
|
37
|
+
# By default the Proc returns true.
|
38
|
+
# @return [Proc]
|
39
|
+
attr_accessor :postprocessor
|
40
|
+
|
41
|
+
OPTION_OVERRIDES = {
|
42
|
+
disable_update_check: true,
|
43
|
+
format: 'checkstyle',
|
44
|
+
quiet: true
|
45
|
+
}.freeze
|
46
|
+
|
47
|
+
def initialize(dangerfile)
|
48
|
+
super(dangerfile)
|
49
|
+
@postprocessor = ->(_path, _line, _column, _message) { true }
|
50
|
+
end
|
51
|
+
|
27
52
|
# Scans Swift files.
|
28
53
|
# Raises an error when Periphery executable is not found.
|
29
54
|
#
|
55
|
+
# @example Ignore all warnings from files matching regular expression
|
56
|
+
# periphery.scan do |violation|
|
57
|
+
# ! violation.path.match(/.*\/generated\.swift/)
|
58
|
+
# end
|
59
|
+
#
|
30
60
|
# @param [Hash] options Options passed to Periphery with the following translation rules.
|
31
61
|
# 1. Replace all underscores with hyphens in each key.
|
32
62
|
# 2. Prepend double hyphens to each key.
|
33
63
|
# 3. If value is an array, transform it to comma-separated string.
|
34
64
|
# 4. If value is true, drop value and treat it as option without argument.
|
35
|
-
# 5. Override some options
|
65
|
+
# 5. Override some options listed in {OPTION_OVERRIDES}.
|
66
|
+
# Run +$ periphery help scan+ for available options.
|
67
|
+
#
|
68
|
+
# @param [Proc] block Block to process each warning just before showing it.
|
69
|
+
# The Proc receives 1 {Periphery::ScanResult} instance as argument.
|
70
|
+
# If the Proc returns falsy value, the warning corresponding to the given ScanResult will be
|
71
|
+
# suppressed, otherwise not.
|
72
|
+
#
|
36
73
|
# @return [void]
|
37
|
-
def scan(**options)
|
38
|
-
output = Periphery::Runner.new(binary_path).scan(options.merge(
|
39
|
-
entries = Periphery::ScanLogParser.new.parse(output)
|
74
|
+
def scan(**options, &block)
|
75
|
+
output = Periphery::Runner.new(binary_path).scan(options.merge(OPTION_OVERRIDES))
|
40
76
|
files = files_in_diff
|
41
|
-
|
42
|
-
|
43
|
-
|
77
|
+
Periphery::CheckstyleParser.new.parse(output).each do |entry|
|
78
|
+
next unless files.include?(entry.path)
|
79
|
+
|
80
|
+
result = postprocess(entry, &block)
|
81
|
+
next unless result
|
82
|
+
|
83
|
+
path, line, _column, message = result
|
84
|
+
warn(message, file: path, line: line)
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
# Convenience method to set {#postprocessor} with block.
|
89
|
+
#
|
90
|
+
# @return [Proc]
|
91
|
+
#
|
92
|
+
# @example Ignore all warnings from files matching regular expression
|
93
|
+
# periphery.process_warnings do |path, line, column, message|
|
94
|
+
# ! path.match(/.*\/generated\.swift/)
|
95
|
+
# end
|
96
|
+
def process_warnings(&block)
|
97
|
+
@postprocessor = block
|
44
98
|
end
|
45
99
|
|
46
100
|
private
|
47
101
|
|
48
102
|
def files_in_diff
|
49
103
|
# Taken from https://github.com/ashfurrow/danger-ruby-swiftlint/blob/5184909aab00f12954088684bbf2ce5627e08ed6/lib/danger_plugin.rb#L214-L216
|
50
|
-
renamed_files_hash = git.renamed_files.
|
51
|
-
post_rename_modified_files = git.modified_files.map
|
104
|
+
renamed_files_hash = git.renamed_files.to_h { |rename| [rename[:before], rename[:after]] }
|
105
|
+
post_rename_modified_files = git.modified_files.map do |modified_file|
|
106
|
+
renamed_files_hash[modified_file] || modified_file
|
107
|
+
end
|
52
108
|
(post_rename_modified_files - git.deleted_files) + git.added_files
|
53
109
|
end
|
110
|
+
|
111
|
+
def postprocess(entry, &block)
|
112
|
+
if block
|
113
|
+
postprocess_with_block(entry, &block)
|
114
|
+
else
|
115
|
+
postprocess_with_postprocessor(entry)
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
def postprocess_with_block(entry, &block)
|
120
|
+
[entry.path, entry.line, entry.column, entry.message] if block.call(entry)
|
121
|
+
end
|
122
|
+
|
123
|
+
def postprocess_with_postprocessor(entry)
|
124
|
+
result = @postprocessor.call(entry.path, entry.line, entry.column, entry.message)
|
125
|
+
if !result
|
126
|
+
nil
|
127
|
+
elsif result.is_a?(TrueClass)
|
128
|
+
[entry.path, entry.line, entry.column, entry.message]
|
129
|
+
elsif result.is_a?(Array) && result.size == 4
|
130
|
+
result
|
131
|
+
else
|
132
|
+
raise 'Proc passed to postprocessor must return one of nil, true, false and Array that includes 4 elements.'
|
133
|
+
end
|
134
|
+
end
|
54
135
|
end
|
55
136
|
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'pathname'
|
4
|
+
require 'periphery/scan_result'
|
5
|
+
require 'rexml/parsers/streamparser'
|
6
|
+
require 'rexml/streamlistener'
|
7
|
+
|
8
|
+
module Periphery
|
9
|
+
# Parses {https://checkstyle.sourceforge.io/ Checkstyle} format XML produced by Periphery with
|
10
|
+
# +--format=checkstyle+ option.
|
11
|
+
class CheckstyleParser
|
12
|
+
class Listener # :nodoc:
|
13
|
+
include REXML::StreamListener
|
14
|
+
|
15
|
+
attr_reader :results
|
16
|
+
|
17
|
+
def initialize
|
18
|
+
@current_file = nil
|
19
|
+
@results = []
|
20
|
+
end
|
21
|
+
|
22
|
+
def tag_start(name, attrs)
|
23
|
+
case name
|
24
|
+
when 'file'
|
25
|
+
@current_file = relative_path(attrs['name'])
|
26
|
+
when 'error'
|
27
|
+
if @current_file
|
28
|
+
@results << ScanResult.new(@current_file, attrs['line'].to_i, attrs['column'].to_i, attrs['message'])
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def tag_end(name)
|
34
|
+
@current_file = nil if name == 'file'
|
35
|
+
end
|
36
|
+
|
37
|
+
private
|
38
|
+
|
39
|
+
def relative_path(path, base = Pathname.getwd)
|
40
|
+
Pathname.new(path).relative_path_from(base).to_s
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def parse(string)
|
45
|
+
listener = Listener.new
|
46
|
+
REXML::Parsers::StreamParser.new(string, listener).parse
|
47
|
+
listener.results
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
data/lib/periphery/runner.rb
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
3
|
+
require 'open3'
|
4
4
|
|
5
5
|
module Periphery
|
6
|
-
class Runner
|
6
|
+
class Runner # :nodoc:
|
7
7
|
attr_reader :binary_path
|
8
8
|
|
9
9
|
def initialize(binary_path)
|
10
|
-
@binary_path = binary_path ||
|
10
|
+
@binary_path = binary_path || 'periphery'
|
11
11
|
end
|
12
12
|
|
13
13
|
def scan(options)
|
14
|
-
arguments = [binary_path,
|
14
|
+
arguments = [binary_path, 'scan'] + scan_arguments(options)
|
15
15
|
stdout, stderr, status = Open3.capture3(*arguments)
|
16
16
|
raise "error: #{arguments} exited with status code #{status.exitstatus}. #{stderr}" unless status.success?
|
17
17
|
|
@@ -19,13 +19,14 @@ module Periphery
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def scan_arguments(options)
|
22
|
-
options.
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
22
|
+
options.each_with_object([]) do |(key, value), new_options|
|
23
|
+
next unless value
|
24
|
+
|
25
|
+
value = nil if value.is_a?(TrueClass)
|
26
|
+
value = value.join(',') if value.is_a?(Array)
|
27
|
+
new_options << "--#{key.to_s.tr('_', '-')}"
|
28
|
+
new_options << value&.to_s if value
|
29
|
+
end
|
29
30
|
end
|
30
31
|
end
|
31
32
|
end
|
data/lib/periphery.rb
ADDED
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: danger-periphery
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryosuke Ito
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-07-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: danger-plugin-api
|
@@ -27,39 +27,21 @@ dependencies:
|
|
27
27
|
description: A Danger plugin to detect unused codes.
|
28
28
|
email:
|
29
29
|
- rito.0305@gmail.com
|
30
|
-
executables:
|
31
|
-
- download_periphery
|
30
|
+
executables: []
|
32
31
|
extensions: []
|
33
32
|
extra_rdoc_files: []
|
34
33
|
files:
|
35
|
-
- ".github/workflows/lint.yml"
|
36
|
-
- ".github/workflows/test.yml"
|
37
|
-
- ".gitignore"
|
38
|
-
- ".rspec"
|
39
|
-
- ".rubocop.yml"
|
40
|
-
- Dangerfile
|
41
|
-
- Gemfile
|
42
|
-
- Guardfile
|
43
|
-
- LICENSE.txt
|
44
|
-
- README.md
|
45
|
-
- Rakefile
|
46
|
-
- bin/download_periphery
|
47
|
-
- danger-periphery.gemspec
|
48
34
|
- lib/danger_plugin.rb
|
35
|
+
- lib/periphery.rb
|
36
|
+
- lib/periphery/checkstyle_parser.rb
|
49
37
|
- lib/periphery/runner.rb
|
50
|
-
- lib/periphery/
|
38
|
+
- lib/periphery/scan_result.rb
|
51
39
|
- lib/version.rb
|
52
|
-
- spec/danger_plugin_spec.rb
|
53
|
-
- spec/periphery/runner_spec.rb
|
54
|
-
- spec/periphery/scan_log_parser_spec.rb
|
55
|
-
- spec/spec_helper.rb
|
56
|
-
- spec/support/fixtures/github_pr.json
|
57
|
-
- spec/support/fixtures/test.xcodeproj/project.pbxproj
|
58
|
-
- spec/support/fixtures/test/main.swift
|
59
40
|
homepage: https://github.com/manicmaniac/danger-periphery
|
60
41
|
licenses:
|
61
42
|
- MIT
|
62
|
-
metadata:
|
43
|
+
metadata:
|
44
|
+
rubygems_mfa_required: 'true'
|
63
45
|
post_install_message:
|
64
46
|
rdoc_options: []
|
65
47
|
require_paths:
|
@@ -68,22 +50,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
68
50
|
requirements:
|
69
51
|
- - ">="
|
70
52
|
- !ruby/object:Gem::Version
|
71
|
-
version: 2.
|
53
|
+
version: 2.6.0
|
72
54
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
73
55
|
requirements:
|
74
56
|
- - ">="
|
75
57
|
- !ruby/object:Gem::Version
|
76
58
|
version: '0'
|
77
59
|
requirements: []
|
78
|
-
rubygems_version: 3.0.3
|
60
|
+
rubygems_version: 3.0.3.1
|
79
61
|
signing_key:
|
80
62
|
specification_version: 4
|
81
63
|
summary: A Danger plugin to detect unused codes.
|
82
|
-
test_files:
|
83
|
-
- spec/danger_plugin_spec.rb
|
84
|
-
- spec/periphery/runner_spec.rb
|
85
|
-
- spec/periphery/scan_log_parser_spec.rb
|
86
|
-
- spec/spec_helper.rb
|
87
|
-
- spec/support/fixtures/github_pr.json
|
88
|
-
- spec/support/fixtures/test.xcodeproj/project.pbxproj
|
89
|
-
- spec/support/fixtures/test/main.swift
|
64
|
+
test_files: []
|
data/.github/workflows/lint.yml
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
name: Lint
|
2
|
-
on: [pull_request]
|
3
|
-
jobs:
|
4
|
-
lint:
|
5
|
-
runs-on: macOS-11
|
6
|
-
env:
|
7
|
-
DANGER_GITHUB_API_TOKEN: ${{ secrets.DANGER_GITHUB_API_TOKEN }}
|
8
|
-
steps:
|
9
|
-
- uses: actions/checkout@v2
|
10
|
-
- run: bin/download_periphery
|
11
|
-
- run: bundle install
|
12
|
-
- run: bundle exec danger
|
data/.github/workflows/test.yml
DELETED
data/.gitignore
DELETED
data/.rspec
DELETED
data/.rubocop.yml
DELETED
@@ -1,281 +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/FileName:
|
128
|
-
Enabled: false
|
129
|
-
|
130
|
-
Layout/HeredocIndentation:
|
131
|
-
Enabled: false
|
132
|
-
|
133
|
-
Style/SpecialGlobalVars:
|
134
|
-
Enabled: false
|
135
|
-
|
136
|
-
Style/PercentLiteralDelimiters:
|
137
|
-
PreferredDelimiters:
|
138
|
-
"%": ()
|
139
|
-
"%i": ()
|
140
|
-
"%q": ()
|
141
|
-
"%Q": ()
|
142
|
-
"%r": "{}"
|
143
|
-
"%s": ()
|
144
|
-
"%w": ()
|
145
|
-
"%W": ()
|
146
|
-
"%x": ()
|
147
|
-
|
148
|
-
Security/YAMLLoad:
|
149
|
-
Enabled: false
|
150
|
-
|
151
|
-
Gemspec/DateAssignment:
|
152
|
-
Enabled: true
|
153
|
-
|
154
|
-
Layout/LineEndStringConcatenationIndentation:
|
155
|
-
Enabled: true
|
156
|
-
|
157
|
-
Layout/SpaceBeforeBrackets:
|
158
|
-
Enabled: true
|
159
|
-
|
160
|
-
Lint/AmbiguousAssignment:
|
161
|
-
Enabled: true
|
162
|
-
|
163
|
-
Lint/AmbiguousOperatorPrecedence:
|
164
|
-
Enabled: true
|
165
|
-
|
166
|
-
Lint/AmbiguousRange:
|
167
|
-
Enabled: true
|
168
|
-
|
169
|
-
Lint/DeprecatedConstants:
|
170
|
-
Enabled: true
|
171
|
-
|
172
|
-
Lint/DuplicateBranch:
|
173
|
-
Enabled: true
|
174
|
-
|
175
|
-
Lint/DuplicateRegexpCharacterClassElement:
|
176
|
-
Enabled: true
|
177
|
-
|
178
|
-
Lint/EmptyBlock:
|
179
|
-
Enabled: true
|
180
|
-
|
181
|
-
Lint/EmptyClass:
|
182
|
-
Enabled: true
|
183
|
-
|
184
|
-
Lint/EmptyInPattern:
|
185
|
-
Enabled: true
|
186
|
-
|
187
|
-
Lint/IncompatibleIoSelectWithFiberScheduler:
|
188
|
-
Enabled: true
|
189
|
-
|
190
|
-
Lint/LambdaWithoutLiteralBlock:
|
191
|
-
Enabled: true
|
192
|
-
|
193
|
-
Lint/NoReturnInBeginEndBlocks:
|
194
|
-
Enabled: true
|
195
|
-
|
196
|
-
Lint/NumberedParameterAssignment:
|
197
|
-
Enabled: true
|
198
|
-
|
199
|
-
Lint/OrAssignmentToConstant:
|
200
|
-
Enabled: true
|
201
|
-
|
202
|
-
Lint/RedundantDirGlobSort:
|
203
|
-
Enabled: true
|
204
|
-
|
205
|
-
Lint/RequireRelativeSelfPath:
|
206
|
-
Enabled: true
|
207
|
-
|
208
|
-
Lint/SymbolConversion:
|
209
|
-
Enabled: true
|
210
|
-
|
211
|
-
Lint/ToEnumArguments:
|
212
|
-
Enabled: true
|
213
|
-
|
214
|
-
Lint/TripleQuotes:
|
215
|
-
Enabled: true
|
216
|
-
|
217
|
-
Lint/UnexpectedBlockArity:
|
218
|
-
Enabled: true
|
219
|
-
|
220
|
-
Lint/UnmodifiedReduceAccumulator:
|
221
|
-
Enabled: true
|
222
|
-
|
223
|
-
Security/IoMethods:
|
224
|
-
Enabled: true
|
225
|
-
|
226
|
-
Style/ArgumentsForwarding:
|
227
|
-
Enabled: true
|
228
|
-
|
229
|
-
Style/CollectionCompact:
|
230
|
-
Enabled: true
|
231
|
-
|
232
|
-
Style/DocumentDynamicEvalDefinition:
|
233
|
-
Enabled: true
|
234
|
-
|
235
|
-
Style/EndlessMethod:
|
236
|
-
Enabled: true
|
237
|
-
|
238
|
-
Style/HashConversion:
|
239
|
-
Enabled: true
|
240
|
-
|
241
|
-
Style/HashExcept:
|
242
|
-
Enabled: true
|
243
|
-
|
244
|
-
Style/IfWithBooleanLiteralBranches:
|
245
|
-
Enabled: true
|
246
|
-
|
247
|
-
Style/InPatternThen:
|
248
|
-
Enabled: true
|
249
|
-
|
250
|
-
Style/MultilineInPatternThen:
|
251
|
-
Enabled: true
|
252
|
-
|
253
|
-
Style/NegatedIfElseCondition:
|
254
|
-
Enabled: true
|
255
|
-
|
256
|
-
Style/NilLambda:
|
257
|
-
Enabled: true
|
258
|
-
|
259
|
-
Style/NumberedParameters:
|
260
|
-
Enabled: true
|
261
|
-
|
262
|
-
Style/NumberedParametersLimit:
|
263
|
-
Enabled: true
|
264
|
-
|
265
|
-
Style/QuotedSymbols:
|
266
|
-
Enabled: true
|
267
|
-
|
268
|
-
Style/RedundantArgument:
|
269
|
-
Enabled: true
|
270
|
-
|
271
|
-
Style/RedundantSelfAssignmentBranch:
|
272
|
-
Enabled: true
|
273
|
-
|
274
|
-
Style/SelectByRegexp:
|
275
|
-
Enabled: true
|
276
|
-
|
277
|
-
Style/StringChars:
|
278
|
-
Enabled: true
|
279
|
-
|
280
|
-
Style/SwapValues:
|
281
|
-
Enabled: true
|