aboutsummaryrefslogtreecommitdiffstats
path: root/.rubocop.yml
Commit message (Collapse)AuthorAgeFilesLines
* Change the empty block style to have space inside of the blockRafael Mendonça França2018-09-251-0/+1
|
* Enable `Performance/UnfreezeString` copyuuji.yaginuma2018-09-231-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In Ruby 2.3 or later, `String#+@` is available and `+@` is faster than `dup`. ```ruby # frozen_string_literal: true require "bundler/inline" gemfile(true) do source "https://rubygems.org" gem "benchmark-ips" end Benchmark.ips do |x| x.report('+@') { +"" } x.report('dup') { "".dup } x.compare! end ``` ``` $ ruby -v benchmark.rb ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux] Warming up -------------------------------------- +@ 282.289k i/100ms dup 187.638k i/100ms Calculating ------------------------------------- +@ 6.775M (± 3.6%) i/s - 33.875M in 5.006253s dup 3.320M (± 2.2%) i/s - 16.700M in 5.032125s Comparison: +@: 6775299.3 i/s dup: 3320400.7 i/s - 2.04x slower ```
* Enable Style/ParenthesesAroundCondition copRyuta Kamizono2018-08-191-0/+3
| | | | To prevent style check in review like https://github.com/rails/rails/pull/33608#discussion_r211087605.
* Enable Lint/UriEscapeUnescape cop not to allow using obsolete methods in the ↵Ryuta Kamizono2018-08-161-0/+3
| | | | | | future Follow up #33627.
* Enable Start/EndWith and RegexpMatch copsBart de Water2018-07-281-0/+9
| | | | | In cases where the MatchData object is not used, this provides a speed-up: https://github.com/JuanitoFatas/fast-ruby/#stringmatch-vs-stringmatch-vs-stringstart_withstringend_with-code-start-code-end
* Remove Rubocop's comments from Rails code basebogdanvlviv2018-07-261-0/+4
| | | | | | | | | | PR#32381 added Rubocop's comments to some tests files in order to exclude `Performance/RedundantMerge`. Turn off `Performance` cops for tests files via `Exclude` in `.rubocop.yml`. Context https://github.com/rails/rails/pull/32381#discussion_r205212331
* Bump RuboCop to 0.58.2Koichi ITO2018-07-261-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ## Summary RuboCop 0.58.2 was released. https://github.com/rubocop-hq/rubocop/releases/tag/v0.58.2 And rubocop-0-58 channel is available in Code Climate. https://github.com/codeclimate/codeclimate/releases/tag/v0.76.0 https://github.com/codeclimate/codeclimate/commit/38f21f0 In addition, the following changes are made in this PR. - Replace Custom cops with Rails cops - Add jaro_winkler gem to Gemfile.lock ### Replace Custom cops with Rails cops These are compatible replacements. - Replace `CustomCops/AssertNot` cop with `Rails/AssertNot` cop. - Replace `CustomCops/RefuteNot` cop with `Rails/RefuteMethods` cop. With this replacement, it was decided to use cop of RuboCop itself. It removes the code related to CustomCops accordingly. ### Add jaro_winkler gem to Gemfile.lock Since RuboCop 0.57.0 depends on jaro_winkler gem, it has been added to Gemfile.lock.
* Turn on performance based copsDillon Welch2018-07-231-0/+9
| | | | | | | | | | | | | | | | Use attr_reader/attr_writer instead of methods method is 12% slower Use flat_map over map.flatten(1) flatten is 66% slower Use hash[]= instead of hash.merge! with single arguments merge! is 166% slower See https://github.com/rails/rails/pull/32337 for more conversation
* Enable `Layout/EmptyLinesAroundBlockBody` to reduce review cost in the futureRyuta Kamizono2018-07-121-0/+3
| | | | | | | We sometimes ask "✂️ extra blank lines" to a contributor in reviews like https://github.com/rails/rails/pull/33337#discussion_r201509738. It is preferable to deal automatically without depending on manpower.
* Enable `Lint/StringConversionInInterpolation` rubocop ruleRyuta Kamizono2018-05-211-0/+3
| | | | | To prevent redundant `to_s` like https://github.com/rails/rails/pull/32923#discussion_r189460008 automatically in the future.
* Rubocop 0.54Bart de Water2018-04-211-7/+7
| | | | Fix `.rubocop.yml: Lint/EndAlignment has the wrong namespace - should be Layout` warning
* Allow rubocop check more filesbogdanvlviv2018-04-191-2/+2
| | | | | | | | | This commit fix pattern of filenames for `CustomCops/AssertNot` and `CustomCops/RefuteNot`. rubocop should check every file under `test/`. Related to #32441, #32605
* Merge pull request #32605 from composerinteralia/assert-notRafael França2018-04-191-0/+5
|\ | | | | Add RuboCop for `assert_not` over `assert !`
| * Add RuboCop for `assert_not` over `assert !`Daniel Colson2018-04-191-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We added `assert_not` in f75addd "to replace warty 'assert !foo'". fa8d35b agrees that it is warty, and so do I. This custom Rubocop rule turns the wart into a violation. As with my last custom cop, https://github.com/rails/rails/pull/32441, I want to make sure this looks right on code climate before pushing another commit to autocorrect everything. @toshimaru I just noticed https://github.com/toshimaru/rubocop-rails/pull/26 Is there a better way to add these custom cops, or were you saying we shouldn't have custom cops at all?
* | Add exculude condition in rubocop.ymlYoshiyuki Hirano2018-04-201-0/+1
|/ | | | | * Excluded `railties/test/fixtures/tmp/**/*` from rubocop inspect files * These files are generated after running test in railties
* Add custom RuboCop for `assert_not` over `refute`Daniel Colson2018-04-031-0/+7
| | | | | | | | | | | | | | | | | | | | | | | Since at least cf4afc4 we have preferred `assert_not` methods over `refute` methods. I have seen plenty of comments in PRs about this, and we have tried to fix it a few times (5294ad8, e45f176, 8910f12, 41f50be, d4cfd54, 48a183e, and 211adb4), but the `refute` methods keep sneaking back in. This custom RuboCop will take care of enforcing this preference, so we don't have to think about it again. I suspect there are other similar stylistic preferences that could be solved with some custom RuboCops, so I will definitely keep my eyes open. `assert_not` over `assert !` might be a good candidate, for example. I wasn't totally sure if `ci/custom_cops` was the best place to put this, but nothing else seemed quite right. At one point I had it set up as a gem, but I think custom cops like this would have limited value in another context. I want to see how code climate handles the new cops before autocorrecting the existing violations. If things go as expected, I will push another commit with those corrections.
* Add cop for preferring 'Foo.method' over 'Foo::method'Andrew White2018-02-221-0/+4
|
* Rails 6 requires Ruby 2.4.1+Jeremy Daer2018-02-171-1/+1
| | | | | | Skipping over 2.4.0 to sidestep the `"symbol_from_string".to_sym.dup` bug. References #32028
* Remove usage of strip_heredoc in the framework in favor of <<~Rafael Mendonça França2018-02-161-1/+1
| | | | | Some places we can't remove because Ruby still don't have a method equivalent to strip_heredoc to be called in an already existent string.
* Enable autocorrect for `Lint/EndAlignment` copKoichi ITO2018-01-181-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ### Summary This PR changes .rubocop.yml. Regarding the code using `if ... else ... end`, I think the coding style that Rails expects is as follows. ```ruby var = if cond a else b end ``` However, the current .rubocop.yml setting does not offense for the following code. ```ruby var = if cond a else b end ``` I think that the above code expects offense to be warned. Moreover, the layout by autocorrect is unnatural. ```ruby var = if cond a else b end ``` This PR adds a setting to .rubocop.yml to make an offense warning and autocorrect as expected by the coding style. And this change also fixes `case ... when ... end` together. Also this PR itself is an example that arranges the layout using `rubocop -a`. ### Other Information Autocorrect of `Lint/EndAlignment` cop is `false` by default. https://github.com/bbatsov/rubocop/blob/v0.51.0/config/default.yml#L1443 This PR changes this value to `true`. Also this PR has changed it together as it is necessary to enable `Layout/ElseAlignment` cop to make this behavior.
* Enable `Layout/LeadingCommentSpace` to not allow cosmetic changes in the futureRyuta Kamizono2017-12-141-0/+3
| | | | Follow up of #31432.
* Enable `Layout/SpaceBeforeComma` rubocop rule, and fixed moreRyuta Kamizono2017-12-121-0/+3
| | | | Follow up of #31390.
* Enable `Style/DefWithParentheses` rubocop ruleRyuta Kamizono2017-11-271-0/+3
| | | | | | | The def with blank `()` was newly added in #31176, but we have not used the blank `()` style in most part of our code base. So I've enabled `Style/DefWithParentheses` to prevent to newly added the code.
* Enable `Style/RedundantReturn` rubocop rule, and fixed a couple moreRyuta Kamizono2017-11-011-0/+4
| | | | Follow up of #31004.
* Merge pull request #31005 from shuheiktgw/remove_unnecessary_semicolonsMatthew Draper2017-10-281-0/+4
| | | | Removed unnecessary semicolons
* Remove frozen_string_literal comment from activestorage's migrationbogdanvlviv2017-08-221-0/+1
| | | | | The activestorage's migration is used as template for apps Related to #30348
* Fix RuboCop offensesKoichi ITO2017-08-161-0/+1
| | | | And enable `context_dependent` of Style/BracesAroundHashParameters cop.
* Adding frozen_string_literal pragma to Railties.Pat Allan2017-08-141-1/+0
|
* Remove unnecessary Include parameter in rubocop.ymlKoichi ITO2017-08-141-1/+0
|
* Use frozen string literal in root filesKoichi ITO2017-08-131-13/+1
|
* Use frozen string literal in ci/Koichi ITO2017-08-131-0/+1
|
* Use frozen string literal in tools/Koichi ITO2017-08-131-0/+1
|
* Use frozen string literal in tasks/Koichi ITO2017-08-131-0/+1
|
* Use frozen string literal in guides/Koichi ITO2017-08-131-0/+1
|
* Use frozen string literal in Active StorageKoichi ITO2017-08-121-0/+1
|
* Do not change the entire codebase style only because of active_storageRafael Mendonça França2017-08-031-1/+0
| | | | | | We are already removing the braces around hash parameters in the last argument in other places so we should not change the entire codebase because of two places.
* Fix all rubocop violationsRafael Mendonça França2017-08-031-4/+1
|
* Use frozen string literal in actionpack/Kir Shatrov2017-07-291-0/+3
|
* Use frozen string literal in actionview/Kir Shatrov2017-07-241-0/+4
|
* Use frozen string literal in actioncable/Kir Shatrov2017-07-231-0/+1
|
* Use frozen string literal in actionmailer/Kir Shatrov2017-07-231-0/+1
|
* Use frozen-string-literal in ActiveRecordKir Shatrov2017-07-191-0/+1
|
* Enable `Layout/FirstParameterIndentation` copRyuta Kamizono2017-07-171-0/+3
| | | | | | | We have some indentation cops. But now there is a little inconsistent params indentations. Enable `Layout/FirstParameterIndentation` cop to prevent newly inconsistent indentation added and auto-correct to existing violations.
* Use frozen string literal in activemodel/Kir Shatrov2017-07-161-0/+1
|
* Enable Layout/EmptyLineAfterMagicComment copKoichi ITO2017-07-111-0/+3
|
* Use frozen-string-literal in ActiveJobKir Shatrov2017-07-091-0/+1
|
* Use frozen-string-literal in ActiveSupportKir Shatrov2017-07-091-0/+6
|
* Revert "Merge pull request #29540 from kirs/rubocop-frozen-string"Matthew Draper2017-07-021-4/+0
| | | | | This reverts commit 3420a14590c0e6915d8b6c242887f74adb4120f9, reversing changes made to afb66a5a598ce4ac74ad84b125a5abf046dcf5aa.
* Enforce frozen string in RubocopKir Shatrov2017-07-011-0/+4
|
* rubocop namespace changes from `Style` to `Layout`Yasuo Honda2017-05-241-21/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Refer https://github.com/bbatsov/rubocop/pull/4278/commits/54166bf76ba76b14f1bbc8a34165f175dbc3f227 for the commit ``` /path/to/rails/.rubocop.yml: Style/CaseIndentation has the wrong namespace - should be Layout /path/to/rails/.rubocop.yml: Style/CommentIndentation has the wrong namespace - should be Layout /path/to/rails/.rubocop.yml: Style/EmptyLines has the wrong namespace - should be Layout /path/to/rails/.rubocop.yml: Style/EmptyLinesAroundClassBody has the wrong namespace - should be Layout /path/to/rails/.rubocop.yml: Style/EmptyLinesAroundMethodBody has the wrong namespace - should be Layout /path/to/rails/.rubocop.yml: Style/EmptyLinesAroundModuleBody has the wrong namespace - should be Layout /path/to/rails/.rubocop.yml: Style/IndentationConsistency has the wrong namespace - should be Layout /path/to/rails/.rubocop.yml: Style/IndentationWidth has the wrong namespace - should be Layout /path/to/rails/.rubocop.yml: Style/SpaceAfterColon has the wrong namespace - should be Layout /path/to/rails/.rubocop.yml: Style/SpaceAfterComma has the wrong namespace - should be Layout /path/to/rails/.rubocop.yml: Style/SpaceAroundEqualsInParameterDefault has the wrong namespace - should be Layout /path/to/rails/.rubocop.yml: Style/SpaceAroundKeyword has the wrong namespace - should be Layout /path/to/rails/.rubocop.yml: Style/SpaceAroundOperators has the wrong namespace - should be Layout /path/to/rails/.rubocop.yml: Style/SpaceBeforeFirstArg has the wrong namespace - should be Layout /path/to/rails/.rubocop.yml: Style/SpaceBeforeBlockBraces has the wrong namespace - should be Layout /path/to/rails/.rubocop.yml: Style/SpaceInsideBlockBraces has the wrong namespace - should be Layout /path/to/rails/.rubocop.yml: Style/SpaceInsideHashLiteralBraces has the wrong namespace - should be Layout /path/to/rails/.rubocop.yml: Style/SpaceInsideParens has the wrong namespace - should be Layout /path/to/rails/.rubocop.yml: Style/Tab has the wrong namespace - should be Layout /path/to/rails/.rubocop.yml: Style/TrailingBlankLines has the wrong namespace - should be Layout /path/to/rails/.rubocop.yml: Style/TrailingWhitespace has the wrong namespace - should be Layout ```