-
-
Notifications
You must be signed in to change notification settings - Fork 137
Expand file tree
/
Copy path.rubocop.yml
More file actions
129 lines (102 loc) · 2.86 KB
/
Copy path.rubocop.yml
File metadata and controls
129 lines (102 loc) · 2.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
inherit_from: .rubocop_todo.yml
plugins:
- rubocop-minitest
- rubocop-rake
- rubocop-rspec
AllCops:
Exclude:
- ".git/**/*"
- "docs/**/*"
# CI installs gems into vendor/bundle via bundler-cache; don't lint them.
- "vendor/**/*"
NewCops: enable
TargetRubyVersion: 3.2
#
# RuboCop built-in settings.
# For documentation on all settings see: https://docs.rubocop.org/en/stable
#
# Trailing periods.
Layout/DotPosition:
EnforcedStyle: trailing
# Turn on auto-correction of equals alignment.
Layout/EndAlignment:
AutoCorrect: true
# Prevent accidental windows line endings
Layout/EndOfLine:
EnforcedStyle: lf
# Standard 120 column limit
Layout/LineLength:
Max: 120
# Use a table layout for hashes
Layout/HashAlignment:
EnforcedHashRocketStyle: table
EnforcedColonStyle: table
# Match existing layout
Layout/SpaceInsideHashLiteralBraces:
EnforcedStyle: no_space
# Allow several expectations per example; specs commonly assert on multiple
# attributes of a captured log event in one example.
RSpec/MultipleExpectations:
Enabled: false
# Support long block lengths for tests
Metrics/BlockLength:
Exclude:
- "test/**/*"
- "spec/**/*"
- "**/*/cli.rb"
# Soften limits
Metrics/ClassLength:
Max: 250
Exclude:
- "test/**/*"
- "spec/**/*"
# Large abstract base class shared by Logger and Subscriber.
- "lib/semantic_logger/base.rb"
# Soften limits
Metrics/MethodLength:
Max: 50
# Soften limits
Metrics/ModuleLength:
Max: 250
Metrics/ParameterLists:
CountKeywordArgs: false
# Initialization Vector abbreviation
Naming/MethodParameterName:
AllowedNames: ['iv', '_', 'io', 'ap', 'on']
# Loggable is a mixin: it memoizes into @semantic_logger rather than @logger so
# that it never clashes with an @logger instance variable in the including class.
Naming/MemoizedInstanceVariableName:
Exclude:
- "lib/semantic_logger/loggable.rb"
# Does not allow Symbols to load
Security/YAMLLoad:
AutoCorrect: false
# Needed for testing DateTime
Style/DateTime:
Exclude: ["test/**/*"]
# TODO: Soften Limits for phase 1 only
Style/Documentation:
Enabled: false
# One line methods
Style/EmptyMethod:
EnforcedStyle: expanded
# Ruby 3 compatibility feature
Style/FrozenStringLiteralComment:
Enabled: false
Style/NumericPredicate:
AutoCorrect: true
# Incorrectly changes job.fail to job.raise
Style/SignalException:
Enabled: false
# Since English may not be loaded, cannot force its use.
Style/SpecialGlobalVars:
Enabled: false
# Make it easier for developers to move between Elixir and Ruby.
Style/StringLiterals:
EnforcedStyle: double_quotes
# The Pattern formatter uses %{...} template tokens as its own pattern syntax,
# not as Ruby format strings, so the annotated-token preference does not apply.
Style/FormatStringToken:
Exclude:
- "lib/semantic_logger/formatters/pattern.rb"
- "test/formatters/pattern_test.rb"