forked from rspec/rspec-core
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.rubocop_rspec_base.yml
123 lines (95 loc) · 3.37 KB
/
.rubocop_rspec_base.yml
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
# This file was generated on 2014-08-12T10:42:08-07:00 from the rspec-dev repo.
# DO NOT modify it by hand as your changes will get lost the next time it is generated.
# This file contains defaults for RSpec projects. Individual projects
# can customize by inheriting this file and overriding particular settings.
AccessModifierIndentation:
EnforcedStyle: outdent
# "Use alias_method instead of alias"
# We're fine with `alias`.
Alias:
Enabled: false
AlignParameters:
EnforcedStyle: with_first_parameter
# "Avoid the use of the case equality operator ==="
# We prefer using `Class#===` over `Object#is_a?` because `Class#===`
# is less likely to be monkey patched than `is_a?` on a user object.
CaseEquality:
Enabled: false
# Warns when the class is excessively long.
ClassLength:
Max: 100
CollectionMethods:
PreferredMethods:
reduce: 'inject'
# Over time we'd like to get this down, but this is what we're at now.
CyclomaticComplexity:
Max: 10
# We use YARD to enforce documentation. It works better than rubocop's
# enforcement...rubocop complains about the places we re-open
# `RSpec::Expectations` and `RSpec::Matchers` w/o having doc commments.
Documentation:
Enabled: false
# We still support 1.8.7 which requires trailing dots
DotPosition:
EnforcedStyle: trailing
DoubleNegation:
Enabled: false
# each_with_object is unavailable on 1.8.7 so we have to disable this one.
EachWithObject:
Enabled: false
Encoding:
EnforcedStyle: when_needed
FormatString:
EnforcedStyle: percent
# As long as we support ruby 1.8.7 we have to use hash rockets.
HashSyntax:
EnforcedStyle: hash_rockets
# We can't use the new lambda syntax, since we still support 1.8.7.
Lambda:
Enabled: false
# Over time we'd like to get this down, but this is what we're at now.
LineLength:
Max: 100
# Over time we'd like to get this down, but this is what we're at now.
MethodLength:
Max: 15
# Who cares what we call the argument for binary operator methods?
OpMethod:
Enabled: false
PercentLiteralDelimiters:
PreferredDelimiters:
'%': () # double-quoted string
'%i': '[]' # array of symbols
'%q': () # single-quoted string
'%Q': () # double-quoted string
'%r': '{}' # regular expression pattern
'%s': () # a symbol
'%w': '[]' # array of single-quoted strings
'%W': '[]' # array of double-quoted strings
'%x': () # a shell command as a string
# We have too many special cases where we allow generator methods or prefer a
# prefixed predicate due to it's improved readability.
PredicateName:
Enabled: false
# On 1.8 `proc` is `lambda`, so we use `Proc.new` to ensure we get real procs on all supported versions.
# http://batsov.com/articles/2014/02/04/the-elements-of-style-in-ruby-number-12-proc-vs-proc-dot-new/
Proc:
Enabled: false
RedundantReturn:
AllowMultipleReturnValues: true
# We have to rescue Exception in the `raise_error` matcher for it to work properly.
RescueException:
Enabled: false
# We haven't adopted the `fail` to signal exceptions vs `raise` for re-raises convention.
SignalException:
Enabled: false
# We've tended to use no space, so it's less of a change to stick with that.
SpaceAroundEqualsInParameterDefault:
EnforcedStyle: no_space
# We don't care about single vs double qoutes.
StringLiterals:
Enabled: false
TrivialAccessors:
AllowDSLWriters: true
AllowPredicates: true
ExactNameMatch: true