bibliothecary 4.0.4 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +25 -0
  3. data/.github/CONTRIBUTING.md +165 -0
  4. data/.github/ISSUE_TEMPLATE.md +18 -0
  5. data/.github/PULL_REQUEST_TEMPLATE.md +10 -0
  6. data/.rubocop.yml +1156 -0
  7. data/.travis.yml +4 -1
  8. data/Gemfile +5 -0
  9. data/README.md +7 -1
  10. data/bibliothecary.gemspec +1 -1
  11. data/lib/bibliothecary.rb +16 -2
  12. data/lib/bibliothecary/analyser.rb +28 -4
  13. data/lib/bibliothecary/parsers/bower.rb +7 -10
  14. data/lib/bibliothecary/parsers/cargo.rb +9 -31
  15. data/lib/bibliothecary/parsers/carthage.rb +13 -34
  16. data/lib/bibliothecary/parsers/clojars.rb +4 -7
  17. data/lib/bibliothecary/parsers/cocoapods.rb +19 -30
  18. data/lib/bibliothecary/parsers/cpan.rb +10 -15
  19. data/lib/bibliothecary/parsers/cran.rb +7 -10
  20. data/lib/bibliothecary/parsers/dub.rb +7 -12
  21. data/lib/bibliothecary/parsers/elm.rb +7 -47
  22. data/lib/bibliothecary/parsers/go.rb +47 -52
  23. data/lib/bibliothecary/parsers/hex.rb +5 -14
  24. data/lib/bibliothecary/parsers/julia.rb +4 -7
  25. data/lib/bibliothecary/parsers/maven.rb +12 -18
  26. data/lib/bibliothecary/parsers/meteor.rb +6 -9
  27. data/lib/bibliothecary/parsers/npm.rb +15 -14
  28. data/lib/bibliothecary/parsers/nuget.rb +18 -28
  29. data/lib/bibliothecary/parsers/packagist.rb +9 -14
  30. data/lib/bibliothecary/parsers/pub.rb +9 -14
  31. data/lib/bibliothecary/parsers/pypi.rb +8 -10
  32. data/lib/bibliothecary/parsers/rubygems.rb +16 -23
  33. data/lib/bibliothecary/parsers/shard.rb +9 -14
  34. data/lib/bibliothecary/parsers/swift_pm.rb +4 -7
  35. data/lib/bibliothecary/version.rb +1 -1
  36. data/lib/sdl_parser.rb +0 -4
  37. metadata +9 -5
  38. data/CONTRIBUTING.md +0 -10
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 074cf6a781bdc5361e785f8c39ad8eca10c57b9c
4
- data.tar.gz: 0c122bd3f94e8f338c360d9604bde07bb3e4a09f
3
+ metadata.gz: 53e9c753a8a7dffebc8e949b4b2321f2bb498fd1
4
+ data.tar.gz: 88859609b2c6e9a4c2507a6d4fe9e881b585247b
5
5
  SHA512:
6
- metadata.gz: 1ac7da10b15aa72433466254366b2eb3569c1e875cefe7a34f1426f7e5ae992bfc8ea569df59f9a411c5b39219268a76caeb53baacfed3495a12e23512337990
7
- data.tar.gz: d17ba2e59a52c17f8721dbfec360828a4e1c57a75e7b3eb73111c13bf64a6a60bb00182e05bc3f75fb53fd76ab8103ad3acff7672172dde9d278acb18da966d0
6
+ metadata.gz: dd0dd8f901b9743f05c207aa7ed8b504d4bbcf8fd23e166b84035420398bbd19b4e89afd0e02a74934c443956bf2344bf9b3d3e31054951c26cd4793791a2817
7
+ data.tar.gz: 16a3620ce75233a158067b053387877699d33f0c759231e5825888ba3c253dda2144f05dbb11ce9ef453005c416133ffc501fd7c4cfc0ac3085b21e04836c82e
data/.codeclimate.yml ADDED
@@ -0,0 +1,25 @@
1
+ ---
2
+ engines:
3
+ duplication:
4
+ enabled: true
5
+ config:
6
+ languages:
7
+ - ruby
8
+ - javascript
9
+ - python
10
+ - php
11
+ fixme:
12
+ enabled: true
13
+ rubocop:
14
+ enabled: true
15
+ ratings:
16
+ paths:
17
+ - "**.inc"
18
+ - "**.js"
19
+ - "**.jsx"
20
+ - "**.module"
21
+ - "**.php"
22
+ - "**.py"
23
+ - "**.rb"
24
+ exclude_paths:
25
+ - spec/
@@ -0,0 +1,165 @@
1
+ ## Contributing to Libraries.io :heart:
2
+ Thanks for considering contributing. These guidelines outline how to contribute to the [Libraries.io](http://github.com/librariesio) project.
3
+
4
+ ## Table of Contents
5
+ [What is Libraries.io all about?](#whats-librariesio-about)
6
+ [What should I know Beofre I get started?](#what-should-i-know-before-i-get-started)
7
+ * [Code of conduct](#code-of-conduct)
8
+ * [Langauge](#langauge)
9
+ * [Installation and setup](#setup)
10
+
11
+ [How can I contribute?](#how-can-i-contribute)
12
+ * [Reporting bugs](#reporting-bugs)
13
+ * [Suggesting enhancements](#suggesting-enhancements)
14
+ * [Suggesting a new feature](#suggesting-new-features)
15
+ * [Your first contribution](#your-first-contribution)
16
+ * [Tackling something meatier](#tackling-something-meatier)
17
+
18
+ [How can I talk to other contributors?](#how-can-i-talk-to-other-contributors)
19
+ * [Chat](#chat)
20
+ * [Video](#video)
21
+ * [Social media](#twitter)
22
+
23
+ [Our workflow](#workflow)
24
+
25
+
26
+ ## What's Libraries.io About?
27
+ _Our goal is to raise the quality of all software._
28
+
29
+ By outlining our [mission and strategy](/strategy.md) we hope to give you more power to make decisions and determine how best to spend your time. Specifically we tackle three distinct problems:
30
+
31
+ * Discovery: _Helping developers make faster, more informed decisions about the software that they use._
32
+ * Maintainability: _Helping maintainers understand more about the software they depend upon and the consumers of their software._
33
+ * Sustainability: _Supporting undervalued software by highlighting shortfalls in contribution and funneling support to them._
34
+
35
+ ## What Should I Know Before I Get Started?
36
+
37
+ ### Code of Conduct
38
+ Libraries.io is an open and inclusive [community of people](https://github.com/orgs/librariesio/people) working together. We expect contributors to abide by our [contributor code of conduct](CODE_OF_CONDUCT.md) which basically say 'be excellent to each other'. Please report unacceptable behavior to conduct@libraries.io
39
+
40
+ ### Langauge
41
+ We communicate predominately in English. Contributions to the project should be made with English as the first language. We are happy for members of the community to communicate in a language other than English in chat, email and video but be aware that this might be considered exclusive by other members of the community.
42
+
43
+ ### Setup
44
+ If you wish to make contributions to Libraries.io then you'll need a local version of the site to test. You can find instructions to install the correct Ruby version, Postgres, and to set up the database in our [README](https://github.com/librariesio/libraries.io/blob/master/README.md#getting-started).
45
+
46
+ ## How Can I Contribute?
47
+
48
+ ### Reporting Bugs
49
+
50
+ The simplest thing that you can do to help us is by filing good bug reports, so here we go:
51
+
52
+ #### Before Submitting a Bug Report
53
+
54
+ * Double-check that the bug is persistent. The site is still in it's infancy and sometimes artifacts may appear and disappear.
55
+ * Double-check the bug hasn't already been reported [on our issue tracker](https://github.com/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+org%3Alibrariesio), they *should* be labelled `bug` or `bugsnag`.
56
+
57
+ If something hasn't been raised, you can go ahead and create a new issue using [the template](/issue_template.md). If you'd like to help investigate further or fix the bug just mention it in your issue and check out our [workflow](#workflow).
58
+
59
+ ### Suggesting Enhancements
60
+
61
+ The next simplest thing you can do to help us is by telling us how we can improve the features we already support, here we go:
62
+
63
+ #### Before Submitting an Enhancement
64
+
65
+ * Check that the enhancement is not already [in our issue tracker](https://github.com/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+org%3Alibrariesio), they should be labelled 'enhancement'.
66
+
67
+ If there isn't already an issue for feature then go ahead and create a new issue for it using the [template](/issue_template.md). If you'd like to work on the enhancement then just mention it in a comment and check out our [workflow](#workflow).
68
+
69
+ ### Suggesting New Features
70
+
71
+ If you're into this zone then you need to understand a little more about what we're trying to achieve:
72
+
73
+ #### Before Suggesting a Feature
74
+
75
+ * Check that it aligns with [our strategy](strategy.md) and is specifically not in line with something we have said we will not do (for the moment this is anything to do with ranking *people*).
76
+ * Check that the feature is not already [in our issue tracker](https://github.com/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+org%3Alibrariesio), they should be tagged 'feature'.
77
+ * Specifically check that it is not already a [funded commitment](https://github.com/librariesio/supporters/issues).
78
+
79
+ If you're still thinking about that killer feature that no one else is thinking about then *please* create an issue for it using the [template](/issue_template.md).
80
+
81
+ ### Your First Contribution
82
+ You're in luck! We label issues that are ideal for first time contributors with [`first-pr`](https://github.com/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+user%3Alibrariesio+label%3A%22first-pr%22). For someone who wants something a little more meaty you might find an issue that needs some assistance with [`help wanted`](https://github.com/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+user%3Alibrariesio+label%3A%22help+wanted%22). Next you'll want to read our [workflow](#workflow).
83
+
84
+ ### Tackling Something Meatier
85
+
86
+ Tickets are labeled by size, skills required and to indicate workflow. Details can be found in our [labelling policy](/labelling.md).
87
+
88
+ To get you started you might want to check out issues concerning [documentation](https://github.com/librariesio/documentation/issues/), [user experience](https://github.com/librariesio/libraries.io/labels/ux), [visual design](https://github.com/librariesio/libraries.io/issues/labels/visual%20design) or perhaps something already [awaiting help](https://github.com/librariesio/libraries.io/labels/help%20wanted). You may find the following useful:
89
+
90
+ * Our [strategy](/strategy.md) which outlines what our goals are, how we are going to achieve those goals and what we are specifically going to avoid.
91
+ * A [techncial overview](/techoverview.md) of the components that make up the Libraries.io project and run the [https://libraries.io](https://libraries.io) site.
92
+
93
+ ## How Can I Talk To Other Contributors?
94
+
95
+ ### Chat
96
+ We use [Slack](http://slack.io) for chat. There's an open invitation avaialble to anyone who wishes to join the conversation at [http://slack.libraries.io](http://slack.libraries.io).
97
+
98
+ We try to use the following channels accordingly:
99
+
100
+ * `#general` channel is used for general, water cooler-type conversation, contributor updates and issue discusion.
101
+ * `#events` is used to share and discuss events that may be of interest to or attended by members of the community
102
+ * `#activity` contains notifications from the various platforms that we use to keep the Libraries.io project turning. Including notifications from GitHub, Twitter and our servers.
103
+
104
+ Members are encouraged to openly discuss their work, their lives, share views and ask for help using chat. It should be considered a *safe space* in which there is *no such thing as a stupid question*. Conversely no one contributor should ever be expected to have read something said in a chat. If someone should know something then it should be written down as an issue and/or documented in an obvious place for others to find.
105
+
106
+ ### Video
107
+ [Google Hangouts](http://hangouts.google.com) is our preferred tool for video chat. We operate an [open hangout](http://bit.ly/2kWtYak) for anyone to jump into at any time to discuss issues face to face.
108
+
109
+ ### Regular updates
110
+ Contributors are encouraged to share what they're working on. We do this through daily or weekly updates in the `#general` channel on Slack. Updates should take the format 'currently working on X, expecting to move onto Y, blocked on Z' where x, y and z are issues in our [issue tracker](https://github.com/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+org%3Alibrariesio).
111
+
112
+ Additionally we host an [open hangout](http://bit.ly/2kWtYak) for any contributor to join at *5pm UTC on a Tuesday* to discuss their work, the next week's priorities and to ask questions of other contributors regarding any aspect of the project. Again this is considered a *safe space* in which *there is no such thing as a stupid question*.
113
+
114
+ ### Mail
115
+ The [core team](https://github.com/orgs/librariesio/teams/core) operate a mailing list for project updates. If you'd like to subscribe you'll find a form in the footer on [Libraries.io](http://libraries.io).
116
+
117
+ ### Twitter
118
+ We have an account on Twitter at [@librariesio](http://twitter.com/librariesio). This is predominately used to retweet news, events and musings by contributors rather than as a direct method of communication. Contributors are encouraged to use @librariesio in a tweet when talking about the project, so that we may retweet if appropriate. The account is moderated and protected by the [core team](https://github.com/orgs/librariesio/teams/core).
119
+
120
+ ### Facebook
121
+ We have a Facebook page at [@libraries.io](https://www.facebook.com/libraries.io). Again this is predominantly used to gather and reflect news, events and musings by contributors rather than as a direct method of communication. Contributors are encouraged to reference Libraries.io in a post when talking about the project, so that we may reflect this if appropriate. Again the account is moderated and protected by the [core team](https://github.com/orgs/librariesio/teams/core).
122
+
123
+ ### Medium
124
+ We have a Medium account at [@librariesio](https://medium.com/@librariesio) and once again it is used to reflect news, events and musings by contributors rather than a direct method of communication. Contributors are encouraged to reference @librariesio in a post when talking about the project, so that we may recommend it if appropriate. Again the account is moderated and protected by the [core team](https://github.com/orgs/librariesio/teams/core).
125
+
126
+ ## Workflow
127
+ In general we use [GitHub](https://help.github.com/) and [Git](https://git-scm.com/docs/gittutorial) to support our workflow. If you are unfamiliar with those tools then you should check them out until you feel you have a basic understanding of GitHub and a working understanding of Git. Specifically you should understand how forking, branching, committing, PRing and merging works.
128
+
129
+ #### Forking
130
+ We prefer that contributors fork the project in order to contribute.
131
+
132
+ #### Branching
133
+ We *try* to use principles of [GitHub-flow](https://lucamezzalira.com/2014/03/10/git-flow-vs-github-flow/) in our branching model. That is the `master` branch will always be deployable to the live site, and that every branch from that will be used to add a feature, fix a bug, improve something or otherwise represent an atomic unit of work.
134
+
135
+ #### Ticketing
136
+ We *try* to create an issue for everything. That is any bug, feature or enhancement that is worth an open, focussed and documented discussion.
137
+
138
+ #### Labelling
139
+ We constrain labels as they are a key part of our workflow. Tickets will be labeled according to our [labelling policy](/labelling.md).
140
+
141
+ #### Templates
142
+ We use templates to guide contributors toward good practice in [filing bugs, requesting enhancements and features](/issue_template.md) and in [issuing pull-requests](/pull_request_template.md).
143
+
144
+ #### Commenting
145
+ If it possible to comment your contribution — for instance if you are contributing code — then do so in a way that is simple, clear, concise and lowers the level of understanding necessary for others to comprehend what comes afterward does or achieves. If you are contributing code it is very likely it will be rejected if it does not contain sufficient comments.
146
+
147
+ #### Committing
148
+ When committing to a branch be sure to use plain, simple language that describes the incremental changes made on the branch toward the overall goal. Avoid unnecessary complexity. Simplify whenever possible. Assume a reasonable but not comprehensive knowledge of the tools, techniques and context of your work.
149
+
150
+ #### Testing
151
+ When adding or fixing functionality, tests should be added to help reduce future regressions and breakage. All tests are ran automatically when new commits are pushed to a branch. Pull requests with broken/missing tests are not likely to be merged.
152
+
153
+ #### Submitting for Review
154
+ Once a piece of work (in a branch) is complete it should be readied for review. This is your last chance to ensure that your contribution is [properly tested](#testing). If you are contributing code it is likely your contribution will be rejected if it would lower the test-coverage. Once this is done you can submit a pull-request following the [template](/pull_request_template.md).
155
+
156
+ It is likely that your contributions will need to be checked by at least one member of the [core team](https://github.com/orgs/librariesio/teams/core) prior to merging. It is also incredibly likely that your contribution may need some re-work in order to be accepted. Particularly if it lacks an appropriate level of comments, tests or it is difficult to understand your commits. Please do not take offense if this is the case. We understand that contributors give their time because they want to improve the project but please understand it is another's responsibility to ensure that the project is maintainable, and good practices like these are key to ensuring that is possible.
157
+
158
+ #### Reviewing a PR
159
+ We appreciate that it may be difficult to offer constructive criticism, but it is a necessary part of ensuring the project is maintainable and successful. If it is difficult to understand something, request it is better commented. If you do not feel assured of the robustness of a contribution, request it is better tested. If it is unclear what the goal of the piece of work is and how it relates to the [strategy](/strategy.md), request a clarification in the corresponding issue. If a pull-request has no corresponding issue, decreases code coverage or otherwise decreases the quality of the project. Reject it. Otherwise, merge it.
160
+
161
+ #### Merging
162
+ As we keep the `master` branch in a permanent state of 'deployment ready' once-merged your contribution will be live on the next deployment.
163
+ #### Deploying
164
+ Any member of the [deployers](https://github.com/orgs/librariesio/teams/deployers) team are able to redeploy the site. If you require a deployment then you might find one of them in our `#general` [chat channel on Slack](slack.libraries.io).
165
+
@@ -0,0 +1,18 @@
1
+ Thanks for taking the time to raise an issue. This template should guide you through the process of submitting a bug, enhancement or feature request. Please erase any part of this template that is not relevant to your issue.
2
+
3
+ ## Bugs
4
+ Before submitting a bug report:
5
+
6
+ - [ ] Double-check that the bug is persistent,
7
+ - [ ] Double-check the bug hasn't already been reported [on our issue tracker](https://github.com/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+org%3Alibrariesio), they *should* be labelled `bug` or `bugsnag`.
8
+
9
+ If you have completed those steps then please replace this section with a description of the steps taken to recreate the bug, the expected behavior and the observed behavior.
10
+
11
+ ## Enhancements and Features
12
+
13
+ Before submitting an enhancement or feature request:
14
+
15
+ - [ ] Check that the enhancement is not already [in our issue tracker](https://github.com/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+org%3Alibrariesio), they should be labelled 'enhancement'.,
16
+ - [ ] For large feature requests, check that your request aligns with our strategy http://docs.libraries.io/strategy.
17
+
18
+ If you have complete the above step then please replace this section with a description of your proposed enhancement or feature, the motivation for it, an approach and any alternative approaches considered, and whether you are willing and able to create a pull request for it. Note that we may close this issue if it's not something we're planning on working on.
@@ -0,0 +1,10 @@
1
+ Thanks taking the time to contribute. This template should help guide you through the process of creating a pull request for review. Please erase any part of this template that is not relevant to your pull request:
2
+
3
+
4
+ - [ ] Have you followed the guidelines for [contributors](http://docs.libraries.io/contributorshandbook)?
5
+ - [ ] Have you checked to ensure there aren't other open pull requests on the repository for a similar change?
6
+ - [ ] Is there a corresponding ticket for your pull request?
7
+ - [ ] Have you written new tests for your changes?
8
+ - [ ] Have you successfully run the project with your changes locally?
9
+
10
+ If so then please replace this section with a link to the ticket(s) it addressed, an explanation of your change and why you think we should include it. Thanks again!
data/.rubocop.yml ADDED
@@ -0,0 +1,1156 @@
1
+ AllCops:
2
+ DisabledByDefault: true
3
+
4
+ #################### Lint ################################
5
+
6
+ Lint/AmbiguousOperator:
7
+ Description: >-
8
+ Checks for ambiguous operators in the first argument of a
9
+ method invocation without parentheses.
10
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parens-as-args'
11
+ Enabled: true
12
+
13
+ Lint/AmbiguousRegexpLiteral:
14
+ Description: >-
15
+ Checks for ambiguous regexp literals in the first argument of
16
+ a method invocation without parenthesis.
17
+ Enabled: true
18
+
19
+ Lint/AssignmentInCondition:
20
+ Description: "Don't use assignment in conditions."
21
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#safe-assignment-in-condition'
22
+ Enabled: true
23
+
24
+ Lint/BlockAlignment:
25
+ Description: 'Align block ends correctly.'
26
+ Enabled: true
27
+
28
+ Lint/CircularArgumentReference:
29
+ Description: "Don't refer to the keyword argument in the default value."
30
+ Enabled: true
31
+
32
+ Lint/ConditionPosition:
33
+ Description: >-
34
+ Checks for condition placed in a confusing position relative to
35
+ the keyword.
36
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#same-line-condition'
37
+ Enabled: true
38
+
39
+ Lint/Debugger:
40
+ Description: 'Check for debugger calls.'
41
+ Enabled: true
42
+
43
+ Lint/DefEndAlignment:
44
+ Description: 'Align ends corresponding to defs correctly.'
45
+ Enabled: true
46
+
47
+ Lint/DeprecatedClassMethods:
48
+ Description: 'Check for deprecated class method calls.'
49
+ Enabled: true
50
+
51
+ Lint/DuplicateMethods:
52
+ Description: 'Check for duplicate methods calls.'
53
+ Enabled: true
54
+
55
+ Lint/EachWithObjectArgument:
56
+ Description: 'Check for immutable argument given to each_with_object.'
57
+ Enabled: true
58
+
59
+ Lint/ElseLayout:
60
+ Description: 'Check for odd code arrangement in an else block.'
61
+ Enabled: true
62
+
63
+ Lint/EmptyEnsure:
64
+ Description: 'Checks for empty ensure block.'
65
+ Enabled: true
66
+
67
+ Lint/EmptyInterpolation:
68
+ Description: 'Checks for empty string interpolation.'
69
+ Enabled: true
70
+
71
+ Lint/EndAlignment:
72
+ Description: 'Align ends correctly.'
73
+ Enabled: true
74
+
75
+ Lint/EndInMethod:
76
+ Description: 'END blocks should not be placed inside method definitions.'
77
+ Enabled: true
78
+
79
+ Lint/EnsureReturn:
80
+ Description: 'Do not use return in an ensure block.'
81
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-return-ensure'
82
+ Enabled: true
83
+
84
+ Lint/Eval:
85
+ Description: 'The use of eval represents a serious security risk.'
86
+ Enabled: true
87
+
88
+ Lint/FormatParameterMismatch:
89
+ Description: 'The number of parameters to format/sprint must match the fields.'
90
+ Enabled: true
91
+
92
+ Lint/HandleExceptions:
93
+ Description: "Don't suppress exception."
94
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#dont-hide-exceptions'
95
+ Enabled: true
96
+
97
+ Lint/InvalidCharacterLiteral:
98
+ Description: >-
99
+ Checks for invalid character literals with a non-escaped
100
+ whitespace character.
101
+ Enabled: true
102
+
103
+ Lint/LiteralInCondition:
104
+ Description: 'Checks of literals used in conditions.'
105
+ Enabled: true
106
+
107
+ Lint/LiteralInInterpolation:
108
+ Description: 'Checks for literals used in interpolation.'
109
+ Enabled: true
110
+
111
+ Lint/Loop:
112
+ Description: >-
113
+ Use Kernel#loop with break rather than begin/end/until or
114
+ begin/end/while for post-loop tests.
115
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#loop-with-break'
116
+ Enabled: true
117
+
118
+ Lint/NestedMethodDefinition:
119
+ Description: 'Do not use nested method definitions.'
120
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-methods'
121
+ Enabled: true
122
+
123
+ Lint/NonLocalExitFromIterator:
124
+ Description: 'Do not use return in iterator to cause non-local exit.'
125
+ Enabled: true
126
+
127
+ Lint/ParenthesesAsGroupedExpression:
128
+ Description: >-
129
+ Checks for method calls with a space before the opening
130
+ parenthesis.
131
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parens-no-spaces'
132
+ Enabled: true
133
+
134
+ Lint/RequireParentheses:
135
+ Description: >-
136
+ Use parentheses in the method call to avoid confusion
137
+ about precedence.
138
+ Enabled: true
139
+
140
+ Lint/RescueException:
141
+ Description: 'Avoid rescuing the Exception class.'
142
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-blind-rescues'
143
+ Enabled: true
144
+
145
+ Lint/ShadowingOuterLocalVariable:
146
+ Description: >-
147
+ Do not use the same name as outer local variable
148
+ for block arguments or block local variables.
149
+ Enabled: true
150
+
151
+ Lint/StringConversionInInterpolation:
152
+ Description: 'Checks for Object#to_s usage in string interpolation.'
153
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-to-s'
154
+ Enabled: true
155
+
156
+ Lint/UnderscorePrefixedVariableName:
157
+ Description: 'Do not use prefix `_` for a variable that is used.'
158
+ Enabled: true
159
+
160
+ Lint/UnneededDisable:
161
+ Description: >-
162
+ Checks for rubocop:disable comments that can be removed.
163
+ Note: this cop is not disabled when disabling all cops.
164
+ It must be explicitly disabled.
165
+ Enabled: true
166
+
167
+ Lint/UnusedBlockArgument:
168
+ Description: 'Checks for unused block arguments.'
169
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars'
170
+ Enabled: true
171
+
172
+ Lint/UnusedMethodArgument:
173
+ Description: 'Checks for unused method arguments.'
174
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars'
175
+ Enabled: true
176
+
177
+ Lint/UnreachableCode:
178
+ Description: 'Unreachable code.'
179
+ Enabled: true
180
+
181
+ Lint/UselessAccessModifier:
182
+ Description: 'Checks for useless access modifiers.'
183
+ Enabled: true
184
+
185
+ Lint/UselessAssignment:
186
+ Description: 'Checks for useless assignment to a local variable.'
187
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars'
188
+ Enabled: true
189
+
190
+ Lint/UselessComparison:
191
+ Description: 'Checks for comparison of something with itself.'
192
+ Enabled: true
193
+
194
+ Lint/UselessElseWithoutRescue:
195
+ Description: 'Checks for useless `else` in `begin..end` without `rescue`.'
196
+ Enabled: true
197
+
198
+ Lint/UselessSetterCall:
199
+ Description: 'Checks for useless setter call to a local variable.'
200
+ Enabled: true
201
+
202
+ Lint/Void:
203
+ Description: 'Possible use of operator/literal/variable in void context.'
204
+ Enabled: true
205
+
206
+ ###################### Metrics ####################################
207
+
208
+ Metrics/AbcSize:
209
+ Description: >-
210
+ A calculated magnitude based on number of assignments,
211
+ branches, and conditions.
212
+ Reference: 'http://c2.com/cgi/wiki?AbcMetric'
213
+ Enabled: false
214
+ Max: 20
215
+
216
+ Metrics/BlockNesting:
217
+ Description: 'Avoid excessive block nesting'
218
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#three-is-the-number-thou-shalt-count'
219
+ Enabled: true
220
+ Max: 4
221
+
222
+ Metrics/ClassLength:
223
+ Description: 'Avoid classes longer than 250 lines of code.'
224
+ Enabled: true
225
+ Max: 250
226
+
227
+ Metrics/CyclomaticComplexity:
228
+ Description: >-
229
+ A complexity metric that is strongly correlated to the number
230
+ of test cases needed to validate a method.
231
+ Enabled: true
232
+
233
+ Metrics/LineLength:
234
+ Description: 'Limit lines to 80 characters.'
235
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#80-character-limits'
236
+ Enabled: false
237
+
238
+ Metrics/MethodLength:
239
+ Description: 'Avoid methods longer than 30 lines of code.'
240
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#short-methods'
241
+ Enabled: true
242
+ Max: 30
243
+
244
+ Metrics/ModuleLength:
245
+ Description: 'Avoid modules longer than 250 lines of code.'
246
+ Enabled: true
247
+ Max: 250
248
+
249
+ Metrics/ParameterLists:
250
+ Description: 'Avoid parameter lists longer than three or four parameters.'
251
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#too-many-params'
252
+ Enabled: true
253
+
254
+ Metrics/PerceivedComplexity:
255
+ Description: >-
256
+ A complexity metric geared towards measuring complexity for a
257
+ human reader.
258
+ Enabled: false
259
+
260
+ ##################### Performance #############################
261
+
262
+ Performance/Count:
263
+ Description: >-
264
+ Use `count` instead of `select...size`, `reject...size`,
265
+ `select...count`, `reject...count`, `select...length`,
266
+ and `reject...length`.
267
+ Enabled: true
268
+
269
+ Performance/Detect:
270
+ Description: >-
271
+ Use `detect` instead of `select.first`, `find_all.first`,
272
+ `select.last`, and `find_all.last`.
273
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerabledetect-vs-enumerableselectfirst-code'
274
+ Enabled: true
275
+
276
+ Performance/FlatMap:
277
+ Description: >-
278
+ Use `Enumerable#flat_map`
279
+ instead of `Enumerable#map...Array#flatten(1)`
280
+ or `Enumberable#collect..Array#flatten(1)`
281
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerablemaparrayflatten-vs-enumerableflat_map-code'
282
+ Enabled: true
283
+ EnabledForFlattenWithoutParams: false
284
+ # If enabled, this cop will warn about usages of
285
+ # `flatten` being called without any parameters.
286
+ # This can be dangerous since `flat_map` will only flatten 1 level, and
287
+ # `flatten` without any parameters can flatten multiple levels.
288
+
289
+ Performance/ReverseEach:
290
+ Description: 'Use `reverse_each` instead of `reverse.each`.'
291
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerablereverseeach-vs-enumerablereverse_each-code'
292
+ Enabled: true
293
+
294
+ Performance/Sample:
295
+ Description: >-
296
+ Use `sample` instead of `shuffle.first`,
297
+ `shuffle.last`, and `shuffle[Fixnum]`.
298
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#arrayshufflefirst-vs-arraysample-code'
299
+ Enabled: true
300
+
301
+ Performance/Size:
302
+ Description: >-
303
+ Use `size` instead of `count` for counting
304
+ the number of elements in `Array` and `Hash`.
305
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#arraycount-vs-arraysize-code'
306
+ Enabled: true
307
+
308
+ Performance/StringReplacement:
309
+ Description: >-
310
+ Use `tr` instead of `gsub` when you are replacing the same
311
+ number of characters. Use `delete` instead of `gsub` when
312
+ you are deleting characters.
313
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#stringgsub-vs-stringtr-code'
314
+ Enabled: true
315
+
316
+ ##################### Rails ##################################
317
+
318
+ Rails/ActionFilter:
319
+ Description: 'Enforces consistent use of action filter methods.'
320
+ Enabled: false
321
+
322
+ Rails/Date:
323
+ Description: >-
324
+ Checks the correct usage of date aware methods,
325
+ such as Date.today, Date.current etc.
326
+ Enabled: false
327
+
328
+ Rails/Delegate:
329
+ Description: 'Prefer delegate method for delegations.'
330
+ Enabled: false
331
+
332
+ Rails/FindBy:
333
+ Description: 'Prefer find_by over where.first.'
334
+ Enabled: false
335
+
336
+ Rails/FindEach:
337
+ Description: 'Prefer all.find_each over all.find.'
338
+ Enabled: false
339
+
340
+ Rails/HasAndBelongsToMany:
341
+ Description: 'Prefer has_many :through to has_and_belongs_to_many.'
342
+ Enabled: false
343
+
344
+ Rails/Output:
345
+ Description: 'Checks for calls to puts, print, etc.'
346
+ Enabled: false
347
+
348
+ Rails/ReadWriteAttribute:
349
+ Description: >-
350
+ Checks for read_attribute(:attr) and
351
+ write_attribute(:attr, val).
352
+ Enabled: false
353
+
354
+ Rails/ScopeArgs:
355
+ Description: 'Checks the arguments of ActiveRecord scopes.'
356
+ Enabled: false
357
+
358
+ Rails/TimeZone:
359
+ Description: 'Checks the correct usage of time zone aware methods.'
360
+ StyleGuide: 'https://github.com/bbatsov/rails-style-guide#time'
361
+ Reference: 'http://danilenko.org/2012/7/6/rails_timezones'
362
+ Enabled: false
363
+
364
+ Rails/Validation:
365
+ Description: 'Use validates :attribute, hash of validations.'
366
+ Enabled: false
367
+
368
+ ################## Style #################################
369
+
370
+ Style/AccessModifierIndentation:
371
+ Description: Check indentation of private/protected visibility modifiers.
372
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#indent-public-private-protected'
373
+ Enabled: false
374
+
375
+ Style/AccessorMethodName:
376
+ Description: Check the naming of accessor methods for get_/set_.
377
+ Enabled: false
378
+
379
+ Style/Alias:
380
+ Description: 'Use alias_method instead of alias.'
381
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#alias-method'
382
+ Enabled: false
383
+
384
+ Style/AlignArray:
385
+ Description: >-
386
+ Align the elements of an array literal if they span more than
387
+ one line.
388
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#align-multiline-arrays'
389
+ Enabled: false
390
+
391
+ Style/AlignHash:
392
+ Description: >-
393
+ Align the elements of a hash literal if they span more than
394
+ one line.
395
+ Enabled: false
396
+
397
+ Style/AlignParameters:
398
+ Description: >-
399
+ Align the parameters of a method call if they span more
400
+ than one line.
401
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-double-indent'
402
+ Enabled: false
403
+
404
+ Style/AndOr:
405
+ Description: 'Use &&/|| instead of and/or.'
406
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-and-or-or'
407
+ Enabled: false
408
+
409
+ Style/ArrayJoin:
410
+ Description: 'Use Array#join instead of Array#*.'
411
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#array-join'
412
+ Enabled: false
413
+
414
+ Style/AsciiComments:
415
+ Description: 'Use only ascii symbols in comments.'
416
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#english-comments'
417
+ Enabled: false
418
+
419
+ Style/AsciiIdentifiers:
420
+ Description: 'Use only ascii symbols in identifiers.'
421
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#english-identifiers'
422
+ Enabled: false
423
+
424
+ Style/Attr:
425
+ Description: 'Checks for uses of Module#attr.'
426
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#attr'
427
+ Enabled: false
428
+
429
+ Style/BeginBlock:
430
+ Description: 'Avoid the use of BEGIN blocks.'
431
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-BEGIN-blocks'
432
+ Enabled: false
433
+
434
+ Style/BarePercentLiterals:
435
+ Description: 'Checks if usage of %() or %Q() matches configuration.'
436
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-q-shorthand'
437
+ Enabled: false
438
+
439
+ Style/BlockComments:
440
+ Description: 'Do not use block comments.'
441
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-block-comments'
442
+ Enabled: false
443
+
444
+ Style/BlockEndNewline:
445
+ Description: 'Put end statement of multiline block on its own line.'
446
+ Enabled: false
447
+
448
+ Style/BlockDelimiters:
449
+ Description: >-
450
+ Avoid using {...} for multi-line blocks (multiline chaining is
451
+ always ugly).
452
+ Prefer {...} over do...end for single-line blocks.
453
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#single-line-blocks'
454
+ Enabled: false
455
+
456
+ Style/BracesAroundHashParameters:
457
+ Description: 'Enforce braces style around hash parameters.'
458
+ Enabled: false
459
+
460
+ Style/CaseEquality:
461
+ Description: 'Avoid explicit use of the case equality operator(===).'
462
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-case-equality'
463
+ Enabled: false
464
+
465
+ Style/CaseIndentation:
466
+ Description: 'Indentation of when in a case/when/[else/]end.'
467
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#indent-when-to-case'
468
+ Enabled: false
469
+
470
+ Style/CharacterLiteral:
471
+ Description: 'Checks for uses of character literals.'
472
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-character-literals'
473
+ Enabled: false
474
+
475
+ Style/ClassAndModuleCamelCase:
476
+ Description: 'Use CamelCase for classes and modules.'
477
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#camelcase-classes'
478
+ Enabled: false
479
+
480
+ Style/ClassAndModuleChildren:
481
+ Description: 'Checks style of children classes and modules.'
482
+ Enabled: false
483
+
484
+ Style/ClassCheck:
485
+ Description: 'Enforces consistent use of `Object#is_a?` or `Object#kind_of?`.'
486
+ Enabled: false
487
+
488
+ Style/ClassMethods:
489
+ Description: 'Use self when defining module/class methods.'
490
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#def-self-class-methods'
491
+ Enabled: false
492
+
493
+ Style/ClassVars:
494
+ Description: 'Avoid the use of class variables.'
495
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-class-vars'
496
+ Enabled: false
497
+
498
+ Style/ClosingParenthesisIndentation:
499
+ Description: 'Checks the indentation of hanging closing parentheses.'
500
+ Enabled: false
501
+
502
+ Style/ColonMethodCall:
503
+ Description: 'Do not use :: for method call.'
504
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#double-colons'
505
+ Enabled: false
506
+
507
+ Style/CommandLiteral:
508
+ Description: 'Use `` or %x around command literals.'
509
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-x'
510
+ Enabled: false
511
+
512
+ Style/CommentAnnotation:
513
+ Description: 'Checks formatting of annotation comments.'
514
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#annotate-keywords'
515
+ Enabled: false
516
+
517
+ Style/CommentIndentation:
518
+ Description: 'Indentation of comments.'
519
+ Enabled: false
520
+
521
+ Style/ConstantName:
522
+ Description: 'Constants should use SCREAMING_SNAKE_CASE.'
523
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#screaming-snake-case'
524
+ Enabled: false
525
+
526
+ Style/DefWithParentheses:
527
+ Description: 'Use def with parentheses when there are arguments.'
528
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#method-parens'
529
+ Enabled: false
530
+
531
+ Style/PreferredHashMethods:
532
+ Description: 'Checks for use of deprecated Hash methods.'
533
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#hash-key'
534
+ Enabled: false
535
+
536
+ Style/Documentation:
537
+ Description: 'Document classes and non-namespace modules.'
538
+ Enabled: false
539
+
540
+ Style/DotPosition:
541
+ Description: 'Checks the position of the dot in multi-line method calls.'
542
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#consistent-multi-line-chains'
543
+ Enabled: false
544
+
545
+ Style/DoubleNegation:
546
+ Description: 'Checks for uses of double negation (!!).'
547
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-bang-bang'
548
+ Enabled: false
549
+
550
+ Style/EachWithObject:
551
+ Description: 'Prefer `each_with_object` over `inject` or `reduce`.'
552
+ Enabled: false
553
+
554
+ Style/ElseAlignment:
555
+ Description: 'Align elses and elsifs correctly.'
556
+ Enabled: false
557
+
558
+ Style/EmptyElse:
559
+ Description: 'Avoid empty else-clauses.'
560
+ Enabled: false
561
+
562
+ Style/EmptyLineBetweenDefs:
563
+ Description: 'Use empty lines between defs.'
564
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#empty-lines-between-methods'
565
+ Enabled: false
566
+
567
+ Style/EmptyLines:
568
+ Description: "Don't use several empty lines in a row."
569
+ Enabled: false
570
+
571
+ Style/EmptyLinesAroundAccessModifier:
572
+ Description: "Keep blank lines around access modifiers."
573
+ Enabled: false
574
+
575
+ Style/EmptyLinesAroundBlockBody:
576
+ Description: "Keeps track of empty lines around block bodies."
577
+ Enabled: false
578
+
579
+ Style/EmptyLinesAroundClassBody:
580
+ Description: "Keeps track of empty lines around class bodies."
581
+ Enabled: false
582
+
583
+ Style/EmptyLinesAroundModuleBody:
584
+ Description: "Keeps track of empty lines around module bodies."
585
+ Enabled: false
586
+
587
+ Style/EmptyLinesAroundMethodBody:
588
+ Description: "Keeps track of empty lines around method bodies."
589
+ Enabled: false
590
+
591
+ Style/EmptyLiteral:
592
+ Description: 'Prefer literals to Array.new/Hash.new/String.new.'
593
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#literal-array-hash'
594
+ Enabled: false
595
+
596
+ Style/EndBlock:
597
+ Description: 'Avoid the use of END blocks.'
598
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-END-blocks'
599
+ Enabled: false
600
+
601
+ Style/EndOfLine:
602
+ Description: 'Use Unix-style line endings.'
603
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#crlf'
604
+ Enabled: false
605
+
606
+ Style/EvenOdd:
607
+ Description: 'Favor the use of Fixnum#even? && Fixnum#odd?'
608
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#predicate-methods'
609
+ Enabled: false
610
+
611
+ Style/ExtraSpacing:
612
+ Description: 'Do not use unnecessary spacing.'
613
+ Enabled: false
614
+
615
+ Style/FileName:
616
+ Description: 'Use snake_case for source file names.'
617
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#snake-case-files'
618
+ Enabled: false
619
+
620
+ Style/InitialIndentation:
621
+ Description: >-
622
+ Checks the indentation of the first non-blank non-comment line in a file.
623
+ Enabled: false
624
+
625
+ Style/FirstParameterIndentation:
626
+ Description: 'Checks the indentation of the first parameter in a method call.'
627
+ Enabled: false
628
+
629
+ Style/FlipFlop:
630
+ Description: 'Checks for flip flops'
631
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-flip-flops'
632
+ Enabled: false
633
+
634
+ Style/For:
635
+ Description: 'Checks use of for or each in multiline loops.'
636
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-for-loops'
637
+ Enabled: false
638
+
639
+ Style/FormatString:
640
+ Description: 'Enforce the use of Kernel#sprintf, Kernel#format or String#%.'
641
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#sprintf'
642
+ Enabled: false
643
+
644
+ Style/GlobalVars:
645
+ Description: 'Do not introduce global variables.'
646
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#instance-vars'
647
+ Reference: 'http://www.zenspider.com/Languages/Ruby/QuickRef.html'
648
+ Enabled: false
649
+
650
+ Style/GuardClause:
651
+ Description: 'Check for conditionals that can be replaced with guard clauses'
652
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals'
653
+ Enabled: false
654
+
655
+ Style/HashSyntax:
656
+ Description: >-
657
+ Prefer Ruby 1.9 hash syntax { a: 1, b: 2 } over 1.8 syntax
658
+ { :a => 1, :b => 2 }.
659
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#hash-literals'
660
+ Enabled: false
661
+
662
+ Style/IfUnlessModifier:
663
+ Description: >-
664
+ Favor modifier if/unless usage when you have a
665
+ single-line body.
666
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#if-as-a-modifier'
667
+ Enabled: false
668
+
669
+ Style/IfWithSemicolon:
670
+ Description: 'Do not use if x; .... Use the ternary operator instead.'
671
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-semicolon-ifs'
672
+ Enabled: false
673
+
674
+ Style/IndentationConsistency:
675
+ Description: 'Keep indentation straight.'
676
+ Enabled: false
677
+
678
+ Style/IndentationWidth:
679
+ Description: 'Use 2 spaces for indentation.'
680
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-indentation'
681
+ Enabled: false
682
+
683
+ Style/IndentArray:
684
+ Description: >-
685
+ Checks the indentation of the first element in an array
686
+ literal.
687
+ Enabled: false
688
+
689
+ Style/IndentHash:
690
+ Description: 'Checks the indentation of the first key in a hash literal.'
691
+ Enabled: false
692
+
693
+ Style/InfiniteLoop:
694
+ Description: 'Use Kernel#loop for infinite loops.'
695
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#infinite-loop'
696
+ Enabled: false
697
+
698
+ Style/Lambda:
699
+ Description: 'Use the new lambda literal syntax for single-line blocks.'
700
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#lambda-multi-line'
701
+ Enabled: false
702
+
703
+ Style/LambdaCall:
704
+ Description: 'Use lambda.call(...) instead of lambda.(...).'
705
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#proc-call'
706
+ Enabled: false
707
+
708
+ Style/LeadingCommentSpace:
709
+ Description: 'Comments should start with a space.'
710
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#hash-space'
711
+ Enabled: false
712
+
713
+ Style/LineEndConcatenation:
714
+ Description: >-
715
+ Use \ instead of + or << to concatenate two string literals at
716
+ line end.
717
+ Enabled: false
718
+
719
+ Style/MethodCallParentheses:
720
+ Description: 'Do not use parentheses for method calls with no arguments.'
721
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-args-no-parens'
722
+ Enabled: false
723
+
724
+ Style/MethodDefParentheses:
725
+ Description: >-
726
+ Checks if the method definitions have or don't have
727
+ parentheses.
728
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#method-parens'
729
+ Enabled: false
730
+
731
+ Style/MethodName:
732
+ Description: 'Use the configured style when naming methods.'
733
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#snake-case-symbols-methods-vars'
734
+ Enabled: false
735
+
736
+ Style/ModuleFunction:
737
+ Description: 'Checks for usage of `extend self` in modules.'
738
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#module-function'
739
+ Enabled: false
740
+
741
+ Style/MultilineBlockChain:
742
+ Description: 'Avoid multi-line chains of blocks.'
743
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#single-line-blocks'
744
+ Enabled: false
745
+
746
+ Style/MultilineBlockLayout:
747
+ Description: 'Ensures newlines after multiline block do statements.'
748
+ Enabled: false
749
+
750
+ Style/MultilineIfThen:
751
+ Description: 'Do not use then for multi-line if/unless.'
752
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-then'
753
+ Enabled: false
754
+
755
+ Style/MultilineOperationIndentation:
756
+ Description: >-
757
+ Checks indentation of binary operations that span more than
758
+ one line.
759
+ Enabled: false
760
+
761
+ Style/MultilineTernaryOperator:
762
+ Description: >-
763
+ Avoid multi-line ?: (the ternary operator);
764
+ use if/unless instead.
765
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-multiline-ternary'
766
+ Enabled: false
767
+
768
+ Style/NegatedIf:
769
+ Description: >-
770
+ Favor unless over if for negative conditions
771
+ (or control flow or).
772
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#unless-for-negatives'
773
+ Enabled: false
774
+
775
+ Style/NegatedWhile:
776
+ Description: 'Favor until over while for negative conditions.'
777
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#until-for-negatives'
778
+ Enabled: false
779
+
780
+ Style/NestedTernaryOperator:
781
+ Description: 'Use one expression per branch in a ternary operator.'
782
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-ternary'
783
+ Enabled: false
784
+
785
+ Style/Next:
786
+ Description: 'Use `next` to skip iteration instead of a condition at the end.'
787
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals'
788
+ Enabled: false
789
+
790
+ Style/NilComparison:
791
+ Description: 'Prefer x.nil? to x == nil.'
792
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#predicate-methods'
793
+ Enabled: false
794
+
795
+ Style/NonNilCheck:
796
+ Description: 'Checks for redundant nil checks.'
797
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-non-nil-checks'
798
+ Enabled: false
799
+
800
+ Style/Not:
801
+ Description: 'Use ! instead of not.'
802
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#bang-not-not'
803
+ Enabled: false
804
+
805
+ Style/NumericLiterals:
806
+ Description: >-
807
+ Add underscores to large numeric literals to improve their
808
+ readability.
809
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscores-in-numerics'
810
+ Enabled: false
811
+
812
+ Style/OneLineConditional:
813
+ Description: >-
814
+ Favor the ternary operator(?:) over
815
+ if/then/else/end constructs.
816
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#ternary-operator'
817
+ Enabled: false
818
+
819
+ Style/OpMethod:
820
+ Description: 'When defining binary operators, name the argument other.'
821
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#other-arg'
822
+ Enabled: false
823
+
824
+ Style/OptionalArguments:
825
+ Description: >-
826
+ Checks for optional arguments that do not appear at the end
827
+ of the argument list
828
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#optional-arguments'
829
+ Enabled: false
830
+
831
+ Style/ParallelAssignment:
832
+ Description: >-
833
+ Check for simple usages of parallel assignment.
834
+ It will only warn when the number of variables
835
+ matches on both sides of the assignment.
836
+ This also provides performance benefits
837
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parallel-assignment'
838
+ Enabled: false
839
+
840
+ Style/ParenthesesAroundCondition:
841
+ Description: >-
842
+ Don't use parentheses around the condition of an
843
+ if/unless/while.
844
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-parens-if'
845
+ Enabled: false
846
+
847
+ Style/PercentLiteralDelimiters:
848
+ Description: 'Use `%`-literal delimiters consistently'
849
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-literal-braces'
850
+ Enabled: false
851
+
852
+ Style/PercentQLiterals:
853
+ Description: 'Checks if uses of %Q/%q match the configured preference.'
854
+ Enabled: false
855
+
856
+ Style/PerlBackrefs:
857
+ Description: 'Avoid Perl-style regex back references.'
858
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-perl-regexp-last-matchers'
859
+ Enabled: false
860
+
861
+ Style/PredicateName:
862
+ Description: 'Check the names of predicate methods.'
863
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#bool-methods-qmark'
864
+ Enabled: false
865
+
866
+ Style/Proc:
867
+ Description: 'Use proc instead of Proc.new.'
868
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#proc'
869
+ Enabled: false
870
+
871
+ Style/RaiseArgs:
872
+ Description: 'Checks the arguments passed to raise/fail.'
873
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#exception-class-messages'
874
+ Enabled: false
875
+
876
+ Style/RedundantBegin:
877
+ Description: "Don't use begin blocks when they are not needed."
878
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#begin-implicit'
879
+ Enabled: false
880
+
881
+ Style/RedundantException:
882
+ Description: "Checks for an obsolete RuntimeException argument in raise/fail."
883
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-explicit-runtimeerror'
884
+ Enabled: false
885
+
886
+ Style/RedundantReturn:
887
+ Description: "Don't use return where it's not required."
888
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-explicit-return'
889
+ Enabled: false
890
+
891
+ Style/RedundantSelf:
892
+ Description: "Don't use self where it's not needed."
893
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-self-unless-required'
894
+ Enabled: false
895
+
896
+ Style/RegexpLiteral:
897
+ Description: 'Use / or %r around regular expressions.'
898
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-r'
899
+ Enabled: false
900
+
901
+ Style/RescueEnsureAlignment:
902
+ Description: 'Align rescues and ensures correctly.'
903
+ Enabled: false
904
+
905
+ Style/RescueModifier:
906
+ Description: 'Avoid using rescue in its modifier form.'
907
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-rescue-modifiers'
908
+ Enabled: false
909
+
910
+ Style/SelfAssignment:
911
+ Description: >-
912
+ Checks for places where self-assignment shorthand should have
913
+ been used.
914
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#self-assignment'
915
+ Enabled: false
916
+
917
+ Style/Semicolon:
918
+ Description: "Don't use semicolons to terminate expressions."
919
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-semicolon'
920
+ Enabled: false
921
+
922
+ Style/SignalException:
923
+ Description: 'Checks for proper usage of fail and raise.'
924
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#fail-method'
925
+ Enabled: false
926
+
927
+ Style/SingleLineBlockParams:
928
+ Description: 'Enforces the names of some block params.'
929
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#reduce-blocks'
930
+ Enabled: false
931
+
932
+ Style/SingleLineMethods:
933
+ Description: 'Avoid single-line methods.'
934
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-single-line-methods'
935
+ Enabled: false
936
+
937
+ Style/SpaceBeforeFirstArg:
938
+ Description: >-
939
+ Checks that exactly one space is used between a method name
940
+ and the first argument for method calls without parentheses.
941
+ Enabled: true
942
+
943
+ Style/SpaceAfterColon:
944
+ Description: 'Use spaces after colons.'
945
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-operators'
946
+ Enabled: false
947
+
948
+ Style/SpaceAfterComma:
949
+ Description: 'Use spaces after commas.'
950
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-operators'
951
+ Enabled: false
952
+
953
+ Style/SpaceAroundKeyword:
954
+ Description: 'Use spaces around keywords.'
955
+ Enabled: false
956
+
957
+ Style/SpaceAfterMethodName:
958
+ Description: >-
959
+ Do not put a space between a method name and the opening
960
+ parenthesis in a method definition.
961
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parens-no-spaces'
962
+ Enabled: false
963
+
964
+ Style/SpaceAfterNot:
965
+ Description: Tracks redundant space after the ! operator.
966
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-space-bang'
967
+ Enabled: false
968
+
969
+ Style/SpaceAfterSemicolon:
970
+ Description: 'Use spaces after semicolons.'
971
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-operators'
972
+ Enabled: false
973
+
974
+ Style/SpaceBeforeBlockBraces:
975
+ Description: >-
976
+ Checks that the left block brace has or doesn't have space
977
+ before it.
978
+ Enabled: false
979
+
980
+ Style/SpaceBeforeComma:
981
+ Description: 'No spaces before commas.'
982
+ Enabled: false
983
+
984
+ Style/SpaceBeforeComment:
985
+ Description: >-
986
+ Checks for missing space between code and a comment on the
987
+ same line.
988
+ Enabled: false
989
+
990
+ Style/SpaceBeforeSemicolon:
991
+ Description: 'No spaces before semicolons.'
992
+ Enabled: false
993
+
994
+ Style/SpaceInsideBlockBraces:
995
+ Description: >-
996
+ Checks that block braces have or don't have surrounding space.
997
+ For blocks taking parameters, checks that the left brace has
998
+ or doesn't have trailing space.
999
+ Enabled: false
1000
+
1001
+ Style/SpaceAroundBlockParameters:
1002
+ Description: 'Checks the spacing inside and after block parameters pipes.'
1003
+ Enabled: false
1004
+
1005
+ Style/SpaceAroundEqualsInParameterDefault:
1006
+ Description: >-
1007
+ Checks that the equals signs in parameter default assignments
1008
+ have or don't have surrounding space depending on
1009
+ configuration.
1010
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-around-equals'
1011
+ Enabled: false
1012
+
1013
+ Style/SpaceAroundOperators:
1014
+ Description: 'Use a single space around operators.'
1015
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-operators'
1016
+ Enabled: false
1017
+
1018
+ Style/SpaceInsideBrackets:
1019
+ Description: 'No spaces after [ or before ].'
1020
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-spaces-braces'
1021
+ Enabled: false
1022
+
1023
+ Style/SpaceInsideHashLiteralBraces:
1024
+ Description: "Use spaces inside hash literal braces - or don't."
1025
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-operators'
1026
+ Enabled: false
1027
+
1028
+ Style/SpaceInsideParens:
1029
+ Description: 'No spaces after ( or before ).'
1030
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-spaces-braces'
1031
+ Enabled: false
1032
+
1033
+ Style/SpaceInsideRangeLiteral:
1034
+ Description: 'No spaces inside range literals.'
1035
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-space-inside-range-literals'
1036
+ Enabled: false
1037
+
1038
+ Style/SpaceInsideStringInterpolation:
1039
+ Description: 'Checks for padding/surrounding spaces inside string interpolation.'
1040
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#string-interpolation'
1041
+ Enabled: false
1042
+
1043
+ Style/SpecialGlobalVars:
1044
+ Description: 'Avoid Perl-style global variables.'
1045
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-cryptic-perlisms'
1046
+ Enabled: false
1047
+
1048
+ Style/StringLiterals:
1049
+ Description: 'Checks if uses of quotes match the configured preference.'
1050
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#consistent-string-literals'
1051
+ Enabled: false
1052
+
1053
+ Style/StringLiteralsInInterpolation:
1054
+ Description: >-
1055
+ Checks if uses of quotes inside expressions in interpolated
1056
+ strings match the configured preference.
1057
+ Enabled: false
1058
+
1059
+ Style/StructInheritance:
1060
+ Description: 'Checks for inheritance from Struct.new.'
1061
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-extend-struct-new'
1062
+ Enabled: false
1063
+
1064
+ Style/SymbolLiteral:
1065
+ Description: 'Use plain symbols instead of string symbols when possible.'
1066
+ Enabled: false
1067
+
1068
+ Style/SymbolProc:
1069
+ Description: 'Use symbols as procs instead of blocks when possible.'
1070
+ Enabled: false
1071
+
1072
+ Style/Tab:
1073
+ Description: 'No hard tabs.'
1074
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#spaces-indentation'
1075
+ Enabled: false
1076
+
1077
+ Style/TrailingBlankLines:
1078
+ Description: 'Checks trailing blank lines and final newline.'
1079
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#newline-eof'
1080
+ Enabled: false
1081
+
1082
+ Style/TrailingCommaInArguments:
1083
+ Description: 'Checks for trailing comma in parameter lists.'
1084
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-params-comma'
1085
+ Enabled: false
1086
+
1087
+ Style/TrailingCommaInLiteral:
1088
+ Description: 'Checks for trailing comma in literals.'
1089
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
1090
+ Enabled: false
1091
+
1092
+ Style/TrailingWhitespace:
1093
+ Description: 'Avoid trailing whitespace.'
1094
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-whitespace'
1095
+ Enabled: false
1096
+
1097
+ Style/TrivialAccessors:
1098
+ Description: 'Prefer attr_* methods to trivial readers/writers.'
1099
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#attr_family'
1100
+ Enabled: false
1101
+
1102
+ Style/UnlessElse:
1103
+ Description: >-
1104
+ Do not use unless with else. Rewrite these with the positive
1105
+ case first.
1106
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-else-with-unless'
1107
+ Enabled: false
1108
+
1109
+ Style/UnneededCapitalW:
1110
+ Description: 'Checks for %W when interpolation is not needed.'
1111
+ Enabled: false
1112
+
1113
+ Style/UnneededPercentQ:
1114
+ Description: 'Checks for %q/%Q when single quotes or double quotes would do.'
1115
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-q'
1116
+ Enabled: false
1117
+
1118
+ Style/TrailingUnderscoreVariable:
1119
+ Description: >-
1120
+ Checks for the usage of unneeded trailing underscores at the
1121
+ end of parallel variable assignment.
1122
+ Enabled: false
1123
+
1124
+ Style/VariableInterpolation:
1125
+ Description: >-
1126
+ Don't interpolate global, instance and class variables
1127
+ directly in strings.
1128
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#curlies-interpolate'
1129
+ Enabled: false
1130
+
1131
+ Style/VariableName:
1132
+ Description: 'Use the configured style when naming variables.'
1133
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#snake-case-symbols-methods-vars'
1134
+ Enabled: false
1135
+
1136
+ Style/WhenThen:
1137
+ Description: 'Use when x then ... for one-line cases.'
1138
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#one-line-cases'
1139
+ Enabled: false
1140
+
1141
+ Style/WhileUntilDo:
1142
+ Description: 'Checks for redundant do after while or until.'
1143
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-multiline-while-do'
1144
+ Enabled: false
1145
+
1146
+ Style/WhileUntilModifier:
1147
+ Description: >-
1148
+ Favor modifier while/until usage when you have a
1149
+ single-line body.
1150
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#while-as-a-modifier'
1151
+ Enabled: false
1152
+
1153
+ Style/WordArray:
1154
+ Description: 'Use %w or %W for arrays of words.'
1155
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-w'
1156
+ Enabled: false