1
0
Fork 0
mirror of https://github.com/teamcapybara/capybara.git synced 2022-11-09 12:08:07 -05:00
teamcapybara--capybara/.rubocop.yml
Koichi ITO 676a21e13a
Add uplelvel to deprecation warning of Capybara (#2379)
Follow https://github.com/teamcapybara/capybara/issues/2371.

This PR adds `uplelvel` to deprecation warning of Capybara.
The `uplevel` option has been introduced from Ruby 2.6.

> If the `uplevel` keyword argument is given, the string will be prepended
with information for the given caller frame in the same format used by
the `rb_warn` C function.

https://ruby-doc.org/core-2.6.0/Kernel.html#method-i-warn

On the other hand, Capybara supports Ruby 2.5.
Therefore, This PR adds `Capybara::Helpers.warn` internal method
for emulating `warn 'message', uplevel: 1` in Ruby 2.5 or lower.

This option will clarify where deprecation warnings should be fixed.

## Before

```console
DEPRECATED: Calling 'has_key?' on the drivers/servers container is
deprecated without replacement
```

## After

```console
/Users/koic/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/turnip-4.1.0/
lib/turnip/capybara.rb:10: warning:
DEPRECATED: Calling 'has_key?' on the drivers/servers container is
deprecated without replacement
```
2020-09-06 12:21:53 -07:00

262 lines
4.2 KiB
YAML

require:
- rubocop-rspec
- rubocop-performance
AllCops:
NewCops: enable
DisabledByDefault: false
TargetRubyVersion: 2.5
Exclude:
- 'vendor/**/*'
- 'gemfiles/vendor/**/*'
#################### Lint ################################
Layout/LineLength:
Description: 'Limit lines to 80 characters.'
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#80-character-limits'
Exclude:
- 'spec/**/*'
- 'lib/capybara/spec/**/*'
IgnoredPatterns:
- '\s+# _?rubocop'
- '^\s*#'
- '^\s*(raise|warn|Capybara::Helpers.warn) '
Max: 120
Metrics/BlockLength:
Exclude:
- 'spec/**/*'
- 'lib/capybara/spec/**/*'
- 'capybara.gemspec'
ExcludedMethods:
- Capybara.add_selector
- Capybara::Selector::FilterSet.add
Metrics/AbcSize:
Enabled: false
Metrics/ClassLength:
CountComments: false
Enabled: false
Metrics/CyclomaticComplexity:
Enabled: false
Metrics/MethodLength:
CountComments: false
Enabled: false
Metrics/ModuleLength:
Enabled: false
CountComments: false
Metrics/PerceivedComplexity:
Enabled: false
Metrics/ParameterLists:
CountKeywordArgs: false
Lint/UnusedMethodArgument:
Exclude:
- 'lib/capybara/driver/base.rb'
- 'lib/capybara/driver/node.rb'
Lint/RaiseException:
Enabled: true
Lint/StructNewOverride:
Enabled: true
Lint/DeprecatedOpenSSLConstant:
Enabled: true
Lint/MixedRegexpCaptureTypes:
Enabled: true
Lint/DuplicateElsifCondition:
Enabled: true
Layout/EndAlignment:
EnforcedStyleAlignWith: variable
Naming/PredicateName:
Exclude:
- '**/*/*matchers.rb'
Naming/MethodParameterName:
AllowedNames:
- 'el'
- 'id'
- 'c'
- 'x'
- 'y'
- 'on'
Style/ParallelAssignment:
Enabled: false
Style/SingleLineMethods:
Enabled: false
Style/Alias:
Enabled: false
Style/Documentation:
Exclude:
- 'lib/capybara/spec/**/*'
- 'spec/**/*'
Enabled: false
Style/DoubleNegation:
Enabled: false
Style/EmptyElse:
EnforcedStyle: empty
Style/ClassAndModuleChildren:
Enabled: false
Style/NumericLiterals:
Exclude:
- 'lib/capybara/spec/**/*'
- 'spec/**/*'
Style/SpecialGlobalVars:
Exclude:
- 'capybara.gemspec'
Style/IfUnlessModifier:
Exclude:
- 'spec/**/*'
Style/HashEachMethods:
Enabled: true
Style/HashTransformKeys:
Enabled: true
Style/HashTransformValues:
Enabled: true
Style/ExponentialNotation:
Enabled: true
Style/SlicingWithRange:
Enabled: true
Style/RedundantRegexpCharacterClass:
Enabled: true
Style/RedundantRegexpEscape:
Enabled: true
Style/RedundantFetchBlock:
Enabled: true
Style/AccessorGrouping:
Enabled: false
Style/BisectedAttrAccessor:
Enabled: false
Style/RedundantAssignment:
Enabled: true
Style/ArrayCoercion:
Enabled: true
Style/CaseLikeIf:
Enabled: true
Style/HashAsLastArrayItem:
Enabled: true
Style/HashLikeCase:
Enabled: true
Style/RedundantFileExtensionInRequire:
Enabled: true
Layout/EmptyLineBetweenDefs:
AllowAdjacentOneLineDefs: true
Layout/AccessModifierIndentation:
EnforcedStyle: outdent
Layout/CaseIndentation:
EnforcedStyle: end
Layout/FirstArrayElementIndentation:
EnforcedStyle: consistent
Layout/IndentationWidth:
IgnoredPatterns: ['^\s*module']
Layout/SpaceAroundMethodCallOperator:
Enabled: true
Layout/EmptyLinesAroundAttributeAccessor:
Enabled: true
Security/YAMLLoad:
Exclude:
- 'lib/capybara/spec/**/*'
- 'spec/**/*'
Performance/AncestorsInclude:
Enabled: true
Performance/BigDecimalWithNumericArgument:
Enabled: true
Performance/RedundantSortBlock:
Enabled: true
Performance/RedundantStringChars:
Enabled: true
Performance/ReverseFirst:
Enabled: true
Performance/SortReverse:
Enabled: true
Performance/Squeeze:
Enabled: true
Performance/StringInclude:
Enabled: true
RSpec/ExampleWording:
Enabled: false
RSpec/InstanceVariable:
AssignmentOnly: true
RSpec/ExampleLength:
Enabled: false
RSpec/MultipleExpectations:
Enabled: false
RSpec/ContextWording:
Enabled: false
RSpec/NestedGroups:
Enabled: false
RSpec/DescribeClass:
Enabled: false
RSpec/FilePath:
Enabled: false
RSpec/PredicateMatcher:
Exclude:
- 'spec/basic_node_spec.rb'
Capybara/FeatureMethods:
Enabled: false