rack-link_headers 2.3.0 → 2.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +14 -6
- data/lib/rack/link_headers/version.rb +3 -3
- data/rack-link-headers.gemspec +7 -4
- data/test/helper_test.rb +7 -4
- data/vendor/bundle/ruby/3.3.0/bundler/gems/rubocop-config-943facea9d8f/LICENSE +21 -0
- data/vendor/bundle/ruby/3.3.0/bundler/gems/rubocop-config-943facea9d8f/README.md +23 -0
- data/vendor/bundle/ruby/3.3.0/bundler/gems/rubocop-config-943facea9d8f/rubocop-config.gemspec +31 -0
- data/vendor/bundle/ruby/3.3.0/gems/ast-2.4.2/LICENSE.MIT +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/ast-2.4.2/README.YARD.md +12 -0
- data/vendor/bundle/ruby/3.3.0/gems/json-2.7.2/LICENSE +56 -0
- data/vendor/bundle/ruby/3.3.0/gems/json-2.7.2/README.md +416 -0
- data/vendor/bundle/ruby/3.3.0/gems/json-2.7.2/json.gemspec +68 -0
- data/vendor/bundle/ruby/3.3.0/gems/language_server-protocol-3.17.0.3/LICENSE.txt +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/language_server-protocol-3.17.0.3/README.md +88 -0
- data/vendor/bundle/ruby/3.3.0/gems/minitest-5.25.1/README.rdoc +835 -0
- data/vendor/bundle/ruby/3.3.0/gems/parallel-1.26.3/MIT-LICENSE.txt +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.5.0/LICENSE.txt +25 -0
- data/vendor/bundle/ruby/3.3.0/gems/parser-3.3.5.0/parser.gemspec +43 -0
- data/vendor/bundle/ruby/3.3.0/gems/racc-1.8.1/README.ja.rdoc +58 -0
- data/vendor/bundle/ruby/3.3.0/gems/racc-1.8.1/README.rdoc +60 -0
- data/vendor/bundle/ruby/3.3.0/gems/rack-3.1.7/CHANGELOG.md +994 -0
- data/vendor/bundle/ruby/3.3.0/gems/rack-3.1.7/MIT-LICENSE +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/rack-3.1.7/README.md +328 -0
- data/vendor/bundle/ruby/3.3.0/gems/rainbow-3.1.1/LICENSE +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/rainbow-3.1.1/README.markdown +227 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.2.1/MIT-LICENSE +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.2.1/README.rdoc +155 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-13.2.1/rake.gemspec +101 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-release-1.3.0/LICENSE +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-release-1.3.0/README.md +107 -0
- data/vendor/bundle/ruby/3.3.0/gems/rake-release-1.3.0/rake-release.gemspec +23 -0
- data/vendor/bundle/ruby/3.3.0/gems/regexp_parser-2.9.2/LICENSE +22 -0
- data/vendor/bundle/ruby/3.3.0/gems/regexp_parser-2.9.2/regexp_parser.gemspec +34 -0
- data/vendor/bundle/ruby/3.3.0/gems/rexml-3.3.7/LICENSE.txt +22 -0
- data/vendor/bundle/ruby/3.3.0/gems/rexml-3.3.7/README.md +57 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-1.65.1/LICENSE.txt +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-1.65.1/README.md +251 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-ast-1.32.3/LICENSE.txt +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-ast-1.32.3/README.md +56 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-capybara-2.21.0/CHANGELOG.md +85 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-capybara-2.21.0/MIT-LICENSE.md +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-capybara-2.21.0/README.md +88 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-factory_bot-2.26.1/CHANGELOG.md +116 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-factory_bot-2.26.1/MIT-LICENSE.md +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-factory_bot-2.26.1/README.md +88 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-performance-1.21.1/LICENSE.txt +20 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-performance-1.21.1/README.md +97 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-rspec-3.0.5/CHANGELOG.md +1034 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-rspec-3.0.5/MIT-LICENSE.md +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-rspec-3.0.5/README.md +109 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-rspec_rails-2.30.0/CHANGELOG.md +84 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-rspec_rails-2.30.0/MIT-LICENSE.md +21 -0
- data/vendor/bundle/ruby/3.3.0/gems/rubocop-rspec_rails-2.30.0/README.md +90 -0
- data/vendor/bundle/ruby/3.3.0/gems/ruby-progressbar-1.13.0/LICENSE.txt +19 -0
- data/vendor/bundle/ruby/3.3.0/gems/ruby-progressbar-1.13.0/README.md +131 -0
- data/vendor/bundle/ruby/3.3.0/gems/unicode-display_width-2.6.0/CHANGELOG.md +200 -0
- data/vendor/bundle/ruby/3.3.0/gems/unicode-display_width-2.6.0/MIT-LICENSE.txt +22 -0
- data/vendor/bundle/ruby/3.3.0/gems/unicode-display_width-2.6.0/README.md +171 -0
- data/vendor/bundle/ruby/3.3.0/specifications/ast-2.4.2.gemspec +30 -0
- data/vendor/bundle/ruby/3.3.0/specifications/json-2.7.2.gemspec +0 -0
- data/vendor/bundle/ruby/3.3.0/specifications/language_server-protocol-3.17.0.3.gemspec +31 -0
- data/vendor/bundle/ruby/3.3.0/specifications/minitest-5.25.1.gemspec +31 -0
- data/vendor/bundle/ruby/3.3.0/specifications/parallel-1.26.3.gemspec +21 -0
- data/vendor/bundle/ruby/3.3.0/specifications/parser-3.3.5.0.gemspec +37 -0
- data/vendor/bundle/ruby/3.3.0/specifications/racc-1.8.1.gemspec +28 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rack-3.1.7.gemspec +31 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rainbow-3.1.1.gemspec +25 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rake-13.2.1.gemspec +26 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rake-release-1.3.0.gemspec +26 -0
- data/vendor/bundle/ruby/3.3.0/specifications/regexp_parser-2.9.2.gemspec +22 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rexml-3.3.7.gemspec +25 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rubocop-1.65.1.gemspec +39 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rubocop-ast-1.32.3.gemspec +28 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rubocop-capybara-2.21.0.gemspec +27 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rubocop-factory_bot-2.26.1.gemspec +27 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rubocop-performance-1.21.1.gemspec +29 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rubocop-rspec-3.0.5.gemspec +28 -0
- data/vendor/bundle/ruby/3.3.0/specifications/rubocop-rspec_rails-2.30.0.gemspec +28 -0
- data/vendor/bundle/ruby/3.3.0/specifications/ruby-progressbar-1.13.0.gemspec +29 -0
- data/vendor/bundle/ruby/3.3.0/specifications/unicode-display_width-2.6.0.gemspec +29 -0
- metadata +84 -8
@@ -0,0 +1,251 @@
|
|
1
|
+
<p align="center">
|
2
|
+
<img src="https://raw.githubusercontent.com/rubocop/rubocop/master/logo/rubo-logo-horizontal-white.png" alt="RuboCop Logo"/>
|
3
|
+
</p>
|
4
|
+
|
5
|
+
----------
|
6
|
+
[![Ruby Style Guide](https://img.shields.io/badge/code_style-rubocop-brightgreen.svg)](https://github.com/rubocop/rubocop)
|
7
|
+
[![Gem Version](https://badge.fury.io/rb/rubocop.svg)](https://badge.fury.io/rb/rubocop)
|
8
|
+
[![Actions Status](https://github.com/rubocop/rubocop/workflows/CI/badge.svg?branch=master)](https://github.com/rubocop/rubocop/actions?query=workflow%3ACI)
|
9
|
+
[![Test Coverage](https://api.codeclimate.com/v1/badges/d2d67f728e88ea84ac69/test_coverage)](https://codeclimate.com/github/rubocop/rubocop/test_coverage)
|
10
|
+
[![Maintainability](https://api.codeclimate.com/v1/badges/d2d67f728e88ea84ac69/maintainability)](https://codeclimate.com/github/rubocop/rubocop/maintainability)
|
11
|
+
[![Discord](https://img.shields.io/badge/chat-on%20discord-7289da.svg?sanitize=true)](https://discord.gg/wJjWvGRDmm)
|
12
|
+
|
13
|
+
> Role models are important. <br/>
|
14
|
+
> -- Officer Alex J. Murphy / RoboCop
|
15
|
+
|
16
|
+
**RuboCop** is a Ruby static code analyzer (a.k.a. `linter`) and code formatter. Out of the box it
|
17
|
+
will enforce many of the guidelines outlined in the community [Ruby Style
|
18
|
+
Guide](https://rubystyle.guide). Apart from reporting the problems discovered in your code,
|
19
|
+
RuboCop can also automatically fix many of them for you.
|
20
|
+
|
21
|
+
RuboCop is extremely flexible and most aspects of its behavior can be tweaked via various
|
22
|
+
[configuration options](https://github.com/rubocop/rubocop/blob/master/config/default.yml).
|
23
|
+
|
24
|
+
----------
|
25
|
+
[![Patreon](https://img.shields.io/badge/patreon-donate-orange.svg)](https://www.patreon.com/bbatsov)
|
26
|
+
[![OpenCollective](https://opencollective.com/rubocop/backers/badge.svg)](#open-collective-backers)
|
27
|
+
[![OpenCollective](https://opencollective.com/rubocop/sponsors/badge.svg)](#open-collective-sponsors)
|
28
|
+
[![Tidelift](https://tidelift.com/badges/package/rubygems/rubocop)](https://tidelift.com/subscription/pkg/rubygems-rubocop?utm_source=rubygems-rubocop&utm_medium=referral&utm_campaign=readme)
|
29
|
+
|
30
|
+
Working on RuboCop is often fun, but it also requires a great deal of time and energy.
|
31
|
+
|
32
|
+
**Please consider [financially supporting its ongoing development](#funding).**
|
33
|
+
|
34
|
+
## Installation
|
35
|
+
|
36
|
+
**RuboCop**'s installation is pretty standard:
|
37
|
+
|
38
|
+
```sh
|
39
|
+
$ gem install rubocop
|
40
|
+
```
|
41
|
+
|
42
|
+
If you'd rather install RuboCop using `bundler`, add a line for it in your `Gemfile` (but set the `require` option to `false`, as it is a standalone tool):
|
43
|
+
|
44
|
+
```rb
|
45
|
+
gem 'rubocop', require: false
|
46
|
+
```
|
47
|
+
|
48
|
+
RuboCop is stable between minor versions, both in terms of API and cop configuration.
|
49
|
+
We aim to ease the maintenance of RuboCop extensions and the upgrades between RuboCop
|
50
|
+
releases. All big changes are reserved for major releases.
|
51
|
+
To prevent an unwanted RuboCop update you might want to use a conservative version lock
|
52
|
+
in your `Gemfile`:
|
53
|
+
|
54
|
+
```rb
|
55
|
+
gem 'rubocop', '~> 1.65', require: false
|
56
|
+
```
|
57
|
+
|
58
|
+
See [our versioning policy](https://docs.rubocop.org/rubocop/versioning.html) for further details.
|
59
|
+
|
60
|
+
## Quickstart
|
61
|
+
|
62
|
+
Just type `rubocop` in a Ruby project's folder and watch the magic happen.
|
63
|
+
|
64
|
+
```
|
65
|
+
$ cd my/cool/ruby/project
|
66
|
+
$ rubocop
|
67
|
+
```
|
68
|
+
|
69
|
+
You can also use this magic in your favorite editor with RuboCop's [built-in LSP server](https://docs.rubocop.org/rubocop/usage/lsp.html).
|
70
|
+
|
71
|
+
## Documentation
|
72
|
+
|
73
|
+
You can read a lot more about RuboCop in its [official docs](https://docs.rubocop.org).
|
74
|
+
|
75
|
+
## Compatibility
|
76
|
+
|
77
|
+
RuboCop officially supports the following runtime Ruby implementations:
|
78
|
+
|
79
|
+
* MRI 2.7+
|
80
|
+
* JRuby 9.4+
|
81
|
+
|
82
|
+
Targets Ruby 2.0+ code analysis.
|
83
|
+
|
84
|
+
See the [compatibility documentation](https://docs.rubocop.org/rubocop/compatibility.html) for further details.
|
85
|
+
|
86
|
+
## Readme Badge
|
87
|
+
|
88
|
+
If you use RuboCop in your project, you can include one of these badges in your readme to let people know that your code is written following the community Ruby Style Guide.
|
89
|
+
|
90
|
+
[![Ruby Style Guide](https://img.shields.io/badge/code_style-rubocop-brightgreen.svg)](https://github.com/rubocop/rubocop)
|
91
|
+
|
92
|
+
[![Ruby Style Guide](https://img.shields.io/badge/code_style-community-brightgreen.svg)](https://rubystyle.guide)
|
93
|
+
|
94
|
+
|
95
|
+
Here are the Markdown snippets for the two badges:
|
96
|
+
|
97
|
+
``` markdown
|
98
|
+
[![Ruby Style Guide](https://img.shields.io/badge/code_style-rubocop-brightgreen.svg)](https://github.com/rubocop/rubocop)
|
99
|
+
|
100
|
+
[![Ruby Style Guide](https://img.shields.io/badge/code_style-community-brightgreen.svg)](https://rubystyle.guide)
|
101
|
+
```
|
102
|
+
|
103
|
+
## Team
|
104
|
+
|
105
|
+
Here's a list of RuboCop's core developers:
|
106
|
+
|
107
|
+
* [Bozhidar Batsov](https://github.com/bbatsov) (author & head maintainer)
|
108
|
+
* [Jonas Arvidsson](https://github.com/jonas054)
|
109
|
+
* [Yuji Nakayama](https://github.com/yujinakayama) (retired)
|
110
|
+
* [Evgeni Dzhelyov](https://github.com/edzhelyov) (retired)
|
111
|
+
* [Ted Johansson](https://github.com/drenmi)
|
112
|
+
* [Masataka Kuwabara](https://github.com/pocke)
|
113
|
+
* [Koichi Ito](https://github.com/koic)
|
114
|
+
* [Maxim Krizhanovski](https://github.com/darhazer)
|
115
|
+
* [Benjamin Quorning](https://github.com/bquorning)
|
116
|
+
* [Marc-André Lafortune](https://github.com/marcandre)
|
117
|
+
* [Daniel Vandersluis](https://github.com/dvandersluis)
|
118
|
+
|
119
|
+
See the [team page](https://docs.rubocop.org/rubocop/about/team.html) for more details.
|
120
|
+
|
121
|
+
## Logo
|
122
|
+
|
123
|
+
RuboCop's logo was created by [Dimiter Petrov](https://www.chadomoto.com/). You can find the logo in various
|
124
|
+
formats [here](https://github.com/rubocop/rubocop/tree/master/logo).
|
125
|
+
|
126
|
+
The logo is licensed under a
|
127
|
+
[Creative Commons Attribution-NonCommercial 4.0 International License](https://creativecommons.org/licenses/by-nc/4.0/deed.en_GB).
|
128
|
+
|
129
|
+
## Contributors
|
130
|
+
|
131
|
+
Here's a [list](https://github.com/rubocop/rubocop/graphs/contributors) of
|
132
|
+
all the people who have contributed to the development of RuboCop.
|
133
|
+
|
134
|
+
I'm extremely grateful to each and every one of them!
|
135
|
+
|
136
|
+
If you'd like to contribute to RuboCop, please take the time to go
|
137
|
+
through our short
|
138
|
+
[contribution guidelines](CONTRIBUTING.md).
|
139
|
+
|
140
|
+
Converting more of the Ruby Style Guide into RuboCop cops is our top
|
141
|
+
priority right now. Writing a new cop is a great way to dive into RuboCop!
|
142
|
+
|
143
|
+
Of course, bug reports and suggestions for improvements are always
|
144
|
+
welcome. GitHub pull requests are even better! :-)
|
145
|
+
|
146
|
+
## Funding
|
147
|
+
|
148
|
+
While RuboCop is free software and will always be, the project would benefit immensely from some funding.
|
149
|
+
Raising a monthly budget of a couple of thousand dollars would make it possible to pay people to work on
|
150
|
+
certain complex features, fund other development related stuff (e.g. hardware, conference trips) and so on.
|
151
|
+
Raising a monthly budget of over $5000 would open the possibility of someone working full-time on the project
|
152
|
+
which would speed up the pace of development significantly.
|
153
|
+
|
154
|
+
We welcome both individual and corporate sponsors! We also offer a
|
155
|
+
wide array of funding channels to account for your preferences
|
156
|
+
(although
|
157
|
+
currently [Open Collective](https://opencollective.com/rubocop) is our
|
158
|
+
preferred funding platform).
|
159
|
+
|
160
|
+
**If you're working in a company that's making significant use of RuboCop we'd appreciate it if you suggest to your company
|
161
|
+
to become a RuboCop sponsor.**
|
162
|
+
|
163
|
+
You can support the development of RuboCop via
|
164
|
+
[GitHub Sponsors](https://github.com/sponsors/bbatsov),
|
165
|
+
[Patreon](https://www.patreon.com/bbatsov),
|
166
|
+
[PayPal](https://paypal.me/bbatsov),
|
167
|
+
[Open Collective](https://opencollective.com/rubocop)
|
168
|
+
and [Tidelift](https://tidelift.com/subscription/pkg/rubygems-rubocop?utm_source=rubygems-rubocop&utm_medium=referral&utm_campaign=readme)
|
169
|
+
.
|
170
|
+
|
171
|
+
**Note:** If doing a sponsorship in the form of donation is problematic for your company from an accounting standpoint, we'd recommend
|
172
|
+
the use of Tidelift, where you can get a support-like subscription instead.
|
173
|
+
|
174
|
+
### Open Collective Backers
|
175
|
+
|
176
|
+
Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/rubocop#backer)]
|
177
|
+
|
178
|
+
<a href="https://opencollective.com/rubocop/backer/0/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/0/avatar.svg"></a>
|
179
|
+
<a href="https://opencollective.com/rubocop/backer/1/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/1/avatar.svg"></a>
|
180
|
+
<a href="https://opencollective.com/rubocop/backer/2/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/2/avatar.svg"></a>
|
181
|
+
<a href="https://opencollective.com/rubocop/backer/3/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/3/avatar.svg"></a>
|
182
|
+
<a href="https://opencollective.com/rubocop/backer/4/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/4/avatar.svg"></a>
|
183
|
+
<a href="https://opencollective.com/rubocop/backer/5/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/5/avatar.svg"></a>
|
184
|
+
<a href="https://opencollective.com/rubocop/backer/6/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/6/avatar.svg"></a>
|
185
|
+
<a href="https://opencollective.com/rubocop/backer/7/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/7/avatar.svg"></a>
|
186
|
+
<a href="https://opencollective.com/rubocop/backer/8/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/8/avatar.svg"></a>
|
187
|
+
<a href="https://opencollective.com/rubocop/backer/9/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/9/avatar.svg"></a>
|
188
|
+
<a href="https://opencollective.com/rubocop/backer/10/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/10/avatar.svg"></a>
|
189
|
+
<a href="https://opencollective.com/rubocop/backer/11/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/11/avatar.svg"></a>
|
190
|
+
<a href="https://opencollective.com/rubocop/backer/12/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/12/avatar.svg"></a>
|
191
|
+
<a href="https://opencollective.com/rubocop/backer/13/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/13/avatar.svg"></a>
|
192
|
+
<a href="https://opencollective.com/rubocop/backer/14/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/14/avatar.svg"></a>
|
193
|
+
<a href="https://opencollective.com/rubocop/backer/15/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/15/avatar.svg"></a>
|
194
|
+
<a href="https://opencollective.com/rubocop/backer/16/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/16/avatar.svg"></a>
|
195
|
+
<a href="https://opencollective.com/rubocop/backer/17/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/17/avatar.svg"></a>
|
196
|
+
<a href="https://opencollective.com/rubocop/backer/18/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/18/avatar.svg"></a>
|
197
|
+
<a href="https://opencollective.com/rubocop/backer/19/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/19/avatar.svg"></a>
|
198
|
+
<a href="https://opencollective.com/rubocop/backer/20/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/20/avatar.svg"></a>
|
199
|
+
<a href="https://opencollective.com/rubocop/backer/21/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/21/avatar.svg"></a>
|
200
|
+
<a href="https://opencollective.com/rubocop/backer/22/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/22/avatar.svg"></a>
|
201
|
+
<a href="https://opencollective.com/rubocop/backer/23/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/23/avatar.svg"></a>
|
202
|
+
<a href="https://opencollective.com/rubocop/backer/24/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/24/avatar.svg"></a>
|
203
|
+
<a href="https://opencollective.com/rubocop/backer/25/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/25/avatar.svg"></a>
|
204
|
+
<a href="https://opencollective.com/rubocop/backer/26/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/26/avatar.svg"></a>
|
205
|
+
<a href="https://opencollective.com/rubocop/backer/27/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/27/avatar.svg"></a>
|
206
|
+
<a href="https://opencollective.com/rubocop/backer/28/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/28/avatar.svg"></a>
|
207
|
+
<a href="https://opencollective.com/rubocop/backer/29/website" target="_blank"><img src="https://opencollective.com/rubocop/backer/29/avatar.svg"></a>
|
208
|
+
|
209
|
+
### Open Collective Sponsors
|
210
|
+
|
211
|
+
Become a sponsor and get your logo on our README on GitHub with a link to your site. [[Become a sponsor](https://opencollective.com/rubocop#sponsor)]
|
212
|
+
|
213
|
+
<a href="https://opencollective.com/rubocop/sponsor/0/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/0/avatar.svg"></a>
|
214
|
+
<a href="https://opencollective.com/rubocop/sponsor/1/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/1/avatar.svg"></a>
|
215
|
+
<a href="https://opencollective.com/rubocop/sponsor/2/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/2/avatar.svg"></a>
|
216
|
+
<a href="https://opencollective.com/rubocop/sponsor/3/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/3/avatar.svg"></a>
|
217
|
+
<a href="https://opencollective.com/rubocop/sponsor/4/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/4/avatar.svg"></a>
|
218
|
+
<a href="https://opencollective.com/rubocop/sponsor/5/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/5/avatar.svg"></a>
|
219
|
+
<a href="https://opencollective.com/rubocop/sponsor/6/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/6/avatar.svg"></a>
|
220
|
+
<a href="https://opencollective.com/rubocop/sponsor/7/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/7/avatar.svg"></a>
|
221
|
+
<a href="https://opencollective.com/rubocop/sponsor/8/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/8/avatar.svg"></a>
|
222
|
+
<a href="https://opencollective.com/rubocop/sponsor/9/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/9/avatar.svg"></a>
|
223
|
+
<a href="https://opencollective.com/rubocop/sponsor/10/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/10/avatar.svg"></a>
|
224
|
+
<a href="https://opencollective.com/rubocop/sponsor/11/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/11/avatar.svg"></a>
|
225
|
+
<a href="https://opencollective.com/rubocop/sponsor/12/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/12/avatar.svg"></a>
|
226
|
+
<a href="https://opencollective.com/rubocop/sponsor/13/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/13/avatar.svg"></a>
|
227
|
+
<a href="https://opencollective.com/rubocop/sponsor/14/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/14/avatar.svg"></a>
|
228
|
+
<a href="https://opencollective.com/rubocop/sponsor/15/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/15/avatar.svg"></a>
|
229
|
+
<a href="https://opencollective.com/rubocop/sponsor/16/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/16/avatar.svg"></a>
|
230
|
+
<a href="https://opencollective.com/rubocop/sponsor/17/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/17/avatar.svg"></a>
|
231
|
+
<a href="https://opencollective.com/rubocop/sponsor/18/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/18/avatar.svg"></a>
|
232
|
+
<a href="https://opencollective.com/rubocop/sponsor/19/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/19/avatar.svg"></a>
|
233
|
+
<a href="https://opencollective.com/rubocop/sponsor/20/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/20/avatar.svg"></a>
|
234
|
+
<a href="https://opencollective.com/rubocop/sponsor/21/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/21/avatar.svg"></a>
|
235
|
+
<a href="https://opencollective.com/rubocop/sponsor/22/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/22/avatar.svg"></a>
|
236
|
+
<a href="https://opencollective.com/rubocop/sponsor/23/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/23/avatar.svg"></a>
|
237
|
+
<a href="https://opencollective.com/rubocop/sponsor/24/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/24/avatar.svg"></a>
|
238
|
+
<a href="https://opencollective.com/rubocop/sponsor/25/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/25/avatar.svg"></a>
|
239
|
+
<a href="https://opencollective.com/rubocop/sponsor/26/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/26/avatar.svg"></a>
|
240
|
+
<a href="https://opencollective.com/rubocop/sponsor/27/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/27/avatar.svg"></a>
|
241
|
+
<a href="https://opencollective.com/rubocop/sponsor/28/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/28/avatar.svg"></a>
|
242
|
+
<a href="https://opencollective.com/rubocop/sponsor/29/website" target="_blank"><img src="https://opencollective.com/rubocop/sponsor/29/avatar.svg"></a>
|
243
|
+
|
244
|
+
## Changelog
|
245
|
+
|
246
|
+
RuboCop's changelog is available [here](CHANGELOG.md).
|
247
|
+
|
248
|
+
## Copyright
|
249
|
+
|
250
|
+
Copyright (c) 2012-2024 Bozhidar Batsov. See [LICENSE.txt](LICENSE.txt) for
|
251
|
+
further details.
|
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2012-20 Bozhidar Batsov
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# RuboCop AST
|
2
|
+
|
3
|
+
[![Gem Version](https://badge.fury.io/rb/rubocop-ast.svg)](https://badge.fury.io/rb/rubocop-ast)
|
4
|
+
[![CI](https://github.com/rubocop/rubocop-ast/actions/workflows/rubocop.yml/badge.svg)](https://github.com/rubocop/rubocop-ast/actions/workflows/rubocop.yml)
|
5
|
+
[![Test Coverage](https://api.codeclimate.com/v1/badges/a29666e6373bc41bc0a9/test_coverage)](https://codeclimate.com/github/rubocop/rubocop-ast/test_coverage)
|
6
|
+
[![Maintainability](https://api.codeclimate.com/v1/badges/a29666e6373bc41bc0a9/maintainability)](https://codeclimate.com/github/rubocop/rubocop-ast/maintainability)
|
7
|
+
|
8
|
+
Contains the classes needed by [RuboCop](https://github.com/rubocop/rubocop) to deal with Ruby's AST, in particular:
|
9
|
+
|
10
|
+
* `RuboCop::AST::Node` ([doc](docs/modules/ROOT/pages/node_types.adoc))
|
11
|
+
* `RuboCop::AST::NodePattern` ([doc](docs/modules/ROOT/pages/node_pattern.adoc))
|
12
|
+
|
13
|
+
This gem may be used independently from the main RuboCop gem. It was extracted from RuboCop in version 0.84 and its only
|
14
|
+
dependency is the [parser](https://github.com/whitequark/parser) gem, which `rubocop-ast` extends.
|
15
|
+
|
16
|
+
## Installation
|
17
|
+
|
18
|
+
Just install the `rubocop-ast` gem
|
19
|
+
|
20
|
+
```sh
|
21
|
+
gem install rubocop-ast
|
22
|
+
```
|
23
|
+
|
24
|
+
or if you use bundler put this in your `Gemfile`
|
25
|
+
|
26
|
+
```ruby
|
27
|
+
gem 'rubocop-ast'
|
28
|
+
```
|
29
|
+
|
30
|
+
## Usage
|
31
|
+
|
32
|
+
Refer to the documentation of [`RuboCop::AST::Node`](docs/modules/ROOT/pages/node_types.adoc) and [`RuboCop::AST::NodePattern`](docs/modules/ROOT/pages/node_pattern.adoc)
|
33
|
+
|
34
|
+
See the [docs site](https://docs.rubocop.org/rubocop-ast) for more details.
|
35
|
+
|
36
|
+
### Parser compatibility switches
|
37
|
+
|
38
|
+
This gem, by default, uses most [legacy AST output from parser](https://github.com/whitequark/parser/#usage), except for the following which are set to `true`:
|
39
|
+
* `emit_forward_arg`
|
40
|
+
* `emit_match_pattern`
|
41
|
+
|
42
|
+
The main `RuboCop` gem uses these defaults (and is currently only compatible with these), but this gem can be used separately from `RuboCop` and is meant to be compatible with all settings. For example, to have `-> { ... }` emitted
|
43
|
+
as `LambdaNode` instead of `SendNode`:
|
44
|
+
|
45
|
+
```ruby
|
46
|
+
RuboCop::AST::Builder.emit_lambda = true
|
47
|
+
```
|
48
|
+
|
49
|
+
## Contributing
|
50
|
+
|
51
|
+
Checkout the [contribution guidelines](CONTRIBUTING.md).
|
52
|
+
|
53
|
+
## License
|
54
|
+
|
55
|
+
`rubocop-ast` is MIT licensed. [See the accompanying file](LICENSE.txt) for
|
56
|
+
the full text.
|
@@ -0,0 +1,85 @@
|
|
1
|
+
# Changelog
|
2
|
+
|
3
|
+
## Edge (Unreleased)
|
4
|
+
|
5
|
+
## 2.21.0 (2024-06-08)
|
6
|
+
|
7
|
+
- Fix a false negative for `Capybara/NegationMatcher` when using `to_not`. ([@ydah])
|
8
|
+
- Fix a false negative for `Capybara/SpecificFinders` when using `find(:id, 'some-id')`. ([@ydah])
|
9
|
+
|
10
|
+
## 2.20.0 (2024-01-03)
|
11
|
+
|
12
|
+
- Change to default `EnforcedStyle: link_or_button` for `Capybara/ClickLinkOrButtonStyle` cop. ([@ydah])
|
13
|
+
- Fix a false negative for `RSpec/HaveSelector` when first argument is dstr node. ([@ydah])
|
14
|
+
- Add new `Capybara/RedundantWithinFind` cop. ([@ydah])
|
15
|
+
- Fix an invalid attributes parse when name with multiple `[]` for `Capybara/SpecificFinders` and `Capybara/SpecificActions` and `Capybara/SpecificMatcher`. ([@ydah])
|
16
|
+
- Change to default `EnforcedStyle: have_no` for `Capybara/NegationMatcher` cop. ([@ydah])
|
17
|
+
- Fix a false positive for `Capybara/SpecificMatcher` when `text:` or `exact_text:` with regexp. ([@ydah])
|
18
|
+
|
19
|
+
## 2.19.0 (2023-09-20)
|
20
|
+
|
21
|
+
- Add new `Capybara/RSpec/PredicateMatcher` cop. ([@ydah])
|
22
|
+
- Add new `Capybara/RSpec/HaveSelector` cop. ([@ydah])
|
23
|
+
- Add new `Capybara/ClickLinkOrButtonStyle` cop. ([@ydah])
|
24
|
+
- Fix a false positive for `Capybara/SpecificFinders` when `find` with kind option. ([@ydah])
|
25
|
+
- Fix an incorrect autocorrect for `Capybara/CurrentPathExpectation`. ([@ydah])
|
26
|
+
- Drop Ruby 2.6 support. ([@ydah])
|
27
|
+
|
28
|
+
## 2.18.0 (2023-04-21)
|
29
|
+
|
30
|
+
- Fix an offense message for `Capybara/SpecificFinders`. ([@ydah])
|
31
|
+
- Expand `Capybara/NegationMatcher` to support `have_content`. ([@OskarsEzerins])
|
32
|
+
- Fix an incorrect autocorrect for `Capybara/CurrentPathExpectation` when matcher's argument is a method with a argument and no parentheses. ([@ydah])
|
33
|
+
|
34
|
+
## 2.17.1 (2023-02-13)
|
35
|
+
|
36
|
+
- Fix an incorrect autocorrect for `Capybara/CurrentPathExpectation`. ([@ydah])
|
37
|
+
- Fix a false negative for `Capybara/CurrentPathExpectation` when using `match`. ([@ydah])
|
38
|
+
- Fix a false positive and incorrect autocorrect for `Capybara/SpecificActions`, `Capybara/SpecificFinders` and `Capybara/SpecificMatcher`. ([@ydah])
|
39
|
+
|
40
|
+
## 2.17.0 (2022-12-29)
|
41
|
+
|
42
|
+
- Extracted from `rubocop-rspec` into a separate repository for easier use with Minitest/Cucumber. ([@pirj])
|
43
|
+
|
44
|
+
## Previously (see [rubocop-rspec's changelist](https://github.com/rubocop/rubocop-rspec/blob/9558719/CHANGELOG.md) for details)
|
45
|
+
|
46
|
+
- Fix a false positive for `Capybara/SpecificMatcher` when `have_css("a")` without attribute. ([@ydah])
|
47
|
+
- Add new `Capybara/NegationMatcher` cop. ([@ydah])
|
48
|
+
- Add new `Capybara/SpecificActions` cop. ([@ydah])
|
49
|
+
- Fix an error for `Capybara/SpecificFinders` with no parentheses. ([@ydah])
|
50
|
+
- Exclude `have_text` and `have_content` that raise `ArgumentError` with `Capybara/VisibilityMatcher` where `:visible` is an invalid option. ([@ydah])
|
51
|
+
- Fix a false negative for `Capybara/VisibilityMatcher` with negative matchers. ([@ydah])
|
52
|
+
- Fix a false positive for `Capybara/SpecificMatcher`. ([@ydah])
|
53
|
+
- Fix a false negative for `Capybara/SpecificMatcher` for `have_field`. ([@ydah])
|
54
|
+
- Fix a false positive for `Capybara/SpecificMatcher` when may not have a `href` by `have_link`. ([@ydah])
|
55
|
+
- Add new `Capybara/SpecificFinders` cop. ([@ydah])
|
56
|
+
- Fix a false positive for `Capybara/SpecificMatcher` when pseudo-classes. ([@ydah])
|
57
|
+
- Fix a false positive for `Capybara/SpecificMatcher`. ([@ydah])
|
58
|
+
- Add new `Capybara/SpecificMatcher` cop. ([@ydah])
|
59
|
+
- Fix `Capybara/CurrentPathExpectation` autocorrect incompatible with `Style/TrailingCommaInArguments` autocorrect. ([@ydah])
|
60
|
+
- Fix `FactoryBot/SyntaxMethods` and `Capybara/FeatureMethods` to inspect shared groups. ([@pirj])
|
61
|
+
- Change namespace of several cops (`Capybara/*` -> `RSpec/Capybara/*`, `FactoryBot/*` -> `RSpec/FactoryBot/*`, `Rails/*` -> `RSpec/Rails/*`). ([@pirj], [@bquorning])
|
62
|
+
- Expand `Capybara/VisibilityMatcher` to support more than just `have_selector`. ([@twalpole])
|
63
|
+
- Add new `Capybara/VisibilityMatcher` cop. ([@aried3r])
|
64
|
+
- Fix `Capybara/CurrentPathExpectation` auto-corrector, to include option `ignore_query: true`. ([@onumis])
|
65
|
+
- Add autocorrect support for `Capybara/CurrentPathExpectation` cop. ([@ypresto])
|
66
|
+
- Fix `Capybara/FeatureMethods` not working when there is require before the spec. ([@Darhazer])
|
67
|
+
- Fix false positives in `Capybara/FeatureMethods` when feature methods are used as property names in a factory. ([@Darhazer])
|
68
|
+
- Allow configuring enabled methods in `Capybara/FeatureMethods`. ([@Darhazer])
|
69
|
+
- Fix false positive in `Capybara/FeatureMethods`. ([@Darhazer])
|
70
|
+
- Add `Capybara/CurrentPathExpectation` cop for feature specs, disallowing setting expectations on `current_path`. ([@timrogers])
|
71
|
+
- Add `RSpec/Capybara` namespace including the first cop for feature specs: `Capybara/FeatureMethods`. ([@rspeicher])
|
72
|
+
|
73
|
+
<!-- Contributors (alphabetically) -->
|
74
|
+
|
75
|
+
[@aried3r]: https://github.com/aried3r
|
76
|
+
[@bquorning]: https://github.com/bquorning
|
77
|
+
[@darhazer]: https://github.com/Darhazer
|
78
|
+
[@onumis]: https://github.com/onumis
|
79
|
+
[@oskarsezerins]: https://github.com/OskarsEzerins
|
80
|
+
[@pirj]: https://github.com/pirj
|
81
|
+
[@rspeicher]: https://github.com/rspeicher
|
82
|
+
[@timrogers]: https://github.com/timrogers
|
83
|
+
[@twalpole]: https://github.com/twalpole
|
84
|
+
[@ydah]: https://github.com/ydah
|
85
|
+
[@ypresto]: https://github.com/ypresto
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2014 Ian MacLeod <ian@nevir.net>
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
6
|
+
this software and associated documentation files (the "Software"), to deal in
|
7
|
+
the Software without restriction, including without limitation the rights to
|
8
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
9
|
+
of the Software, and to permit persons to whom the Software is furnished to do
|
10
|
+
so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
@@ -0,0 +1,88 @@
|
|
1
|
+
# RuboCop Capybara
|
2
|
+
|
3
|
+
[![Join the chat at https://gitter.im/rubocop-rspec/Lobby](https://badges.gitter.im/rubocop-rspec/Lobby.svg)](https://gitter.im/rubocop-rspec/Lobby)
|
4
|
+
[![Gem Version](https://badge.fury.io/rb/rubocop-capybara.svg)](https://rubygems.org/gems/rubocop-capybara)
|
5
|
+
![CI](https://github.com/rubocop/rubocop-capybara/workflows/CI/badge.svg)
|
6
|
+
|
7
|
+
[Capybara](https://teamcapybara.github.io/capybara)-specific analysis for your projects, as an extension to
|
8
|
+
[RuboCop](https://github.com/rubocop/rubocop).
|
9
|
+
|
10
|
+
## Installation
|
11
|
+
|
12
|
+
Just install the `rubocop-capybara` gem
|
13
|
+
|
14
|
+
```bash
|
15
|
+
gem install rubocop-capybara
|
16
|
+
```
|
17
|
+
|
18
|
+
or if you use bundler put this in your `Gemfile`
|
19
|
+
|
20
|
+
```ruby
|
21
|
+
gem 'rubocop-capybara', require: false
|
22
|
+
```
|
23
|
+
|
24
|
+
## Usage
|
25
|
+
|
26
|
+
You need to tell RuboCop to load the Capybara extension. There are three
|
27
|
+
ways to do this:
|
28
|
+
|
29
|
+
### RuboCop configuration file
|
30
|
+
|
31
|
+
Put this into your `.rubocop.yml`.
|
32
|
+
|
33
|
+
```yaml
|
34
|
+
require: rubocop-capybara
|
35
|
+
```
|
36
|
+
|
37
|
+
Alternatively, use the following array notation when specifying multiple extensions.
|
38
|
+
|
39
|
+
```yaml
|
40
|
+
require:
|
41
|
+
- rubocop-other-extension
|
42
|
+
- rubocop-capybara
|
43
|
+
```
|
44
|
+
|
45
|
+
Now you can run `rubocop` and it will automatically load the RuboCop Capybara
|
46
|
+
cops together with the standard cops.
|
47
|
+
|
48
|
+
### Command line
|
49
|
+
|
50
|
+
```bash
|
51
|
+
rubocop --require rubocop-capybara
|
52
|
+
```
|
53
|
+
|
54
|
+
### Rake task
|
55
|
+
|
56
|
+
```ruby
|
57
|
+
RuboCop::RakeTask.new do |task|
|
58
|
+
task.requires << 'rubocop-capybara'
|
59
|
+
end
|
60
|
+
```
|
61
|
+
|
62
|
+
## Documentation
|
63
|
+
|
64
|
+
You can read more about RuboCop Capybara in its [official manual](https://docs.rubocop.org/rubocop-capybara).
|
65
|
+
|
66
|
+
## The Cops
|
67
|
+
|
68
|
+
All cops are located under
|
69
|
+
[`lib/rubocop/cop/capybara`](lib/rubocop/cop/capybara), and contain
|
70
|
+
examples/documentation.
|
71
|
+
|
72
|
+
In your `.rubocop.yml`, you may treat the Capybara cops just like any other
|
73
|
+
cop. For example:
|
74
|
+
|
75
|
+
```yaml
|
76
|
+
Capybara/SpecificMatcher:
|
77
|
+
Exclude:
|
78
|
+
- spec/my_spec.rb
|
79
|
+
```
|
80
|
+
|
81
|
+
## Contributing
|
82
|
+
|
83
|
+
Checkout the [contribution guidelines](.github/CONTRIBUTING.md).
|
84
|
+
|
85
|
+
## License
|
86
|
+
|
87
|
+
`rubocop-capybara` is MIT licensed. [See the accompanying file](MIT-LICENSE.md) for
|
88
|
+
the full text.
|