Rubocop Versions Save

A Ruby static code analyzer and formatter, based on the community Ruby style guide.

v1.63.2

1 week ago

Bug fixes

  • #12843: Fix an error for Lint/MixedCaseRange when a character between Z and a is used in the regexp range. (@koic)
  • #12846: Fix an error for RuboCop::Lockfile when there is no Bundler environment. (@koic)
  • #12832: Fix an error for Style/ArgumentsForwarding when using block arg in nested method definitions. (@koic)
  • #12841: Fix false negatives for Lint/UnreachableLoop when using pattern matching. (@koic)
  • #12835: Allow global offenses to be disabled by directive comments. (@earlopain)

Changes

  • #12845: Exclude debug/open_nonstop from Lint/Debugger by default. (@koic)

v1.63.1

2 weeks ago

Bug fixes

  • #12828: Fix a false positive for Lint/AssignmentInCondition if assigning inside a method call. (@earlopain)
  • #12823: Fixed "uninitialized constant RuboCop::Lockfile::Bundler", caused when running RuboCop without bundler exec on codebases that use rubocop-rails. (@amomchilov)

v1.63.0

2 weeks ago

New features

Bug fixes

  • #12769: Fix a false positive for Lint/RedundantWithIndex when calling with_index with receiver and a block. (@koic)
  • #12547: Added a comment recommending upgrading to the latest version of Rubocop in the error text when an Infinite loop detected error occurs. (@Hiroto-Iizuka)
  • #12782: Fix an error for Style/Alias with EnforcedStyle: prefer_alias when calling alias_method with fewer than 2 arguments. (@earlopain)
  • #12781: Fix an error for Style/ExactRegexpMatch when calling match without a receiver. (@earlopain)
  • #12780: Fix an error for Style/RedundantEach when using reverse_each.each without a block. (@earlopain)
  • #12731: Treat &. the same way as . for setter methods in Lint/AssignmentInCondition. (@jonas054)
  • #12793: Fix false positives for Style/RedundantLineContinuation when using line continuation with modifier. (@koic)
  • #12807: Fix false positives for Naming/BlockForwarding when using explicit block forwarding in block method and others. (@koic)
  • #12796: Fix false positives for Style/EvalWithLocation when using eval with a line number from a method call or a variable. (@koic)
  • #12794: Fix false positives for Style/RedundantArgument when when single-quoted strings for cntrl character. (@koic)
  • #12797: Fix false positives for Style/RedundantLineContinuation when using line continuations with && or || operator in assignment. (@koic)
  • #12793: Fix false positives for Style/RedundantLineContinuation when multi-line continuations with operators. (@koic)
  • #12801: Fix incorrect autocorrect for Style/CollectionCompact when using delete_if. (@koic)
  • #12789: Make Style/RedundantPercentQ safe on multiline strings. (@boardfish)
  • #12802: Return global offenses for Naming/FileName and Naming/InclusiveLanguage for empty files. (@earlopain)
  • #12804: Return global offenses for Style/Copyright when the file is empty. (@earlopain)

Changes

  • #12813: Add rubocop-rspec_rails to suggested extensions and extension doc. (@ydah)
  • #12820: Add support more Capybara debugger entry points for Lint/Debugger. (@ydah)
  • #12676: Adjust offending range in LSP. (@koic)
  • #12815: Ignore Rakefile.rb in Naming/FileName in the default config. (@artur-intech)
  • #12800: Handle empty obsoletion config. (@sambostock)
  • #12721: Make Lint/Debugger aware of ruby/debug requires. (@earlopain)
  • #12817: Make rubocop -V display rubocop-rspec_rails version when using it. (@ydah)
  • #12180: Replace regex with Bundler::LockfileParser. (@amomchilov)

v1.62.1

1 month ago

Bug fixes

  • #12761: Fix a false positive for Style/HashEachMethods when the key block argument of Enumerable#each method is unused after chunk. (@koic)
  • #12768: Fix a false positive for Style/NilComparison without receiver and EnforcedStyle: comparison. (@earlopain)
  • #12752: Fix an error for Gemspec/RequiredRubyVersion when the file is empty. (@earlopain)
  • #12770: Fix an error for Lint/RedundantWithIndex when the method has no receiver. (@earlopain)
  • #12775: Fix an error for Lint/UselessTimes when no block is present. (@earlopain)
  • #12772: Fix an error for Style/ClassVars when calling class_variable_set without arguments. (@earlopain)
  • #12773: Fix an error for Style/For with EnforcedStyle: for when no receiver. (@earlopain)
  • #12765: Fix an error for Layout/MultilineMethodCallIndentation with safe navigation and assignment method. (@earlopain)
  • #12703: Fix an error for Lint/MixedCaseRange with invalid byte sequence in UTF-8. (@earlopain)
  • #12755: Fix an exception for RedundantCurrentDirectoryInPath in case of require_relative without arguments. (@viralpraxis)
  • #12710: Fix a false negative for Layout/EmptyLineAfterMagicComment when the file is comments only. (@earlopain)
  • #12758: Fix false positives for Layout/RedundantLineBreak when using && or || after a backslash newline. (@koic)
  • #12763: Fix an infinite loop for Style/MultilineMethodSignature when there is a newline directly after the def keyword. (@earlopain)
  • #12774: Fix an infinite loop for Style/RaiseArgs with EnforcedStyle: compact when passing more than 2 arguments to raise. (@earlopain)
  • #12663: Fix Lint/Syntax getting disabled by rubocop:disable Lint/Syntax. (@earlopain)
  • #12756: Only parse target Ruby from gemspec if array elements are strings. (@davidrunger)

Changes

v1.62.0

1 month ago

Note: This is the first RuboCop release that features (experimental) support for using Prism instead of the parser gem. Check out the docs for more details.

See also this article for additional context.

New features

  • #12600: Support Prism as a Ruby parser (experimental). (@koic)
  • #12725: Support TargetRubyVersion 3.4 (experimental). (@koic)

Bug fixes

  • #12746: Fix a false positive for Lint/ToEnumArguments when enumerator is created for another method in no arguments method definition. (@koic)
  • #12726: Fix a false positive for Style/RedundantLineContinuation when using line concatenation and calling a method with keyword arguments without parentheses. (@koic)
  • #12738: Fix an error for Style/Encoding when magic encoding with mixed case present. (@koic)
  • #12732: Fix error determining target Ruby when gemspec required_ruby_version is read from another file. (@davidrunger)
  • #12736: Fix invalid autocorrect in Layout/SpaceInsideHashLiteralBraces. (@bquorning)
  • #12667: Don't load excluded configuration. (@jonas054)

v1.61.0

1 month ago

New features

  • #12682: Add --editor-mode CLI option. (@koic)
  • #12657: Support AutoCorrect: contextual option for LSP. (@koic)
  • #12273: Make OffenseCountFormatter display autocorrection information. (@koic)
  • #12679: Publish RuboCop::LSP.enable API to enable LSP mode. (@koic)
  • #12699: Support searching for .rubocop.yml and rubocop/config.yml in compliance with dot-config. (@koic)

Bug fixes

  • #12720: Fix a false positive for Style/ArgumentsForwarding when using block arg forwarding to within block with Ruby 3.3.0. (@koic)
  • #12714: Fix an error for Gemspec/RequiredRubyVersion when required_ruby_version is specified with Gem::Requirement.new and is higher than TargetRubyVersion. (@koic)
  • #12690: Fix an error for Style/CaseLikeIf when using == with literal and using ternary operator. (@koic)
  • #12668: Fix an incorrect autocorrect for Lint/EmptyConditionalBody when missing if body with conditional else body. (@koic)
  • #12683: Fix an incorrect autocorrect for Style/MapCompactWithConditionalBlock when using guard clause with next implicitly nil. (@koic)
  • #12693: Fix an incorrect autocorrect for Style/ObjectThen when using yield_self without receiver. (@koic)
  • #12646: Fix --auto-gen-config bug for Layout/SpaceBeforeBlockBraces. (@jonas054)
  • #12717: Fix regexp for inline disable comments in Style/CommentedKeyword. (@jonas054)
  • #12695: Fix bug in Include from inherited file in a parent directory. (@jonas054)
  • #12656: Fix an error for Layout/RedundantLineBreak when using index access call chained on multiline hash literal. (@koic)
  • #12691: Fix an error for Style/MultilineTernaryOperator when nesting multiline ternary operators. (@koic)
  • #12707: Fix false negative for Style/RedundantAssignment when using pattern matching. (@koic)
  • #12674: Fix false negatives for Style/RedundantReturn when using pattern matching. (@koic)
  • #12673: Fix false negatives for Lint/RedundantSafeNavigation when using safe navigation operator for literal receiver. (@koic)
  • #12719: Fix false negatives for Style/ArgumentsForwarding when using forwardable block arguments with Ruby 3.2+. (@koic)
  • #12687: Fix a false positive for Lint/Void when each block with conditional expressions that has multiple statements. (@koic)
  • #12649: Fix false positives for Style/InverseMethods when using relational comparison operator with safe navigation. (@koic)
  • #12711: Handle implicit receivers in Style/InvertibleUnlessCondition. (@sambostock)
  • #12648: Fix numblock regressions in omit_parentheses Style/MethodCallWithArgsParentheses. (@gsamokovarov)

Changes

v1.60.2

3 months ago

Bug fixes

  • #12627: Fix a false positive for Layout/RedundantLineBreak when using index access call chained on multiple lines with backslash. (@koic)
  • #12626: Fix a false positive for Style/ArgumentsForwarding when naming a block argument &. (@koic)
  • #12635: Fix a false positive for Style/HashEachMethods when both arguments are unused. (@earlopain)
  • #12636: Fix an error for Style/HashEachMethods when a block with both parameters has no body. (@earlopain)
  • #12638: Fix an Errno::ENOENT error when using server mode. (@koic)
  • #12628: Fix a false positive for Style/ArgumentsForwarding when using block arg forwarding with positional arguments forwarding to within block. (@koic)
  • #12642: Fix false positives for Style/HashEachMethods when using array converter method. (@koic)
  • #12632: Fix an infinite loop error when EnforcedStyle: explicit of Naming/BlockForwarding with Style/ArgumentsForwarding. (@koic)

v1.60.1

3 months ago

Bug fixes

  • #12625: Fix an error when server cache dir has read-only file system. (@Strzesia)
  • #12618: Fix false positives for Style/ArgumentsForwarding when using block argument forwarding with other arguments. (@koic)
  • #12614: Fix false positiveis for Style/RedundantParentheses when parentheses in control flow keyword with multiline style argument. (@koic)

Changes

  • #12617: Make Style/CollectionCompact aware of grep_v with nil. (@koic)

v1.60.0

3 months ago

Bug fixes

  • #12603: Fix an infinite loop error for Style/MultilineTernaryOperator when using a method call as a ternary operator condition with a line break between receiver and method. (@koic)
  • #12549: Fix a false positive for Style/RedundantLineContinuation when line continuations for multiline leading dot method chain with a blank line. (@koic)
  • #12610: Accept parentheses in argument calls with blocks for Style/MethodCallWithArgsParentheses omit_parentheses style. (@gsamokovarov)
  • #12580: Fix an infinite loop error for Layout/EndAlignment when misaligned in singleton class assignments with EnforcedStyleAlignWith: variable. (@koic)
  • #12548: Fix an infinite loop error for Layout/FirstArgumentIndentation when specifying EnforcedStyle: with_fixed_indentation of Layout/ArrayAlignment. (@koic)
  • #12236: Fix an error for Lint/ShadowedArgument when self assigning to a block argument in for. (@koic)
  • #12569: Fix an error for Style/IdenticalConditionalBranches when using if...else with identical leading lines that assign to self.foo. (@koic)
  • #12437: Fix an infinite loop error for EnforcedStyle: omit_parentheses of Style/MethodCallWithArgsParentheses with Style/SuperWithArgsParentheses. (@koic)
  • #12558: Fix an incorrect autocorrect for Style/MapToHash when using map.to_h without receiver. (@koic)
  • #12179: Let --auto-gen-config generate Exclude when Max is overridden. (@jonas054)
  • #12574: Fix bug for unrecognized style in --auto-gen-config. (@jonas054)
  • #12542: Fix false positive for Lint/MixedRegexpCaptureTypes when using look-ahead matcher. (@marocchino)
  • #12607: Fix a false positive for Style/RedundantParentheses when regexp literal attempts to match against a parenthesized condition. (@koic)
  • #12539: Fix false positives for Lint/LiteralAssignmentInCondition when a collection literal contains non-literal elements. (@koic)
  • #12571: Fix false positives for Naming/BlockForwarding when using explicit block forwarding in block method. (@koic)
  • #12537: Fix false positives for Style/RedundantParentheses when AllowInMultilineConditions: true of Style/ParenthesesAroundCondition. (@koic)
  • #12578: Fix false positives for Style/ArgumentsForwarding when rest arguments forwarding to a method in block. (@koic)
  • #12540: Fix false positives for Style/HashEachMethods when rest block argument of Enumerable#each method is used. (@koic)
  • #12529: Fix false positives for Style/ParenthesesAroundCondition. (@koic)
  • #12556: Fix false positives for Style/RedundantParentheses when parentheses are used around a semantic operator in expressions within assignments. (@koic)
  • #12541: Fix false negative in Style/ArgumentsForwarding when a block is forwarded but other args aren't. (@dvandersluis)
  • #12581: Handle trailing line continuation in Layout/LineContinuationLeadingSpace. (@eugeneius)
  • #12601: Make Style/EachForSimpleLoop accept block with no parameters. (@koic)

Changes

  • #12535: Allow --autocorrect with --display-only-fail-level-offenses. (@naveg)
  • #12572: Follow a Ruby 3.3 warning for Security/Open when open with a literal string starting with a pipe. (@koic)
  • #12453: Make Style/RedundantEach aware of safe navigation operator. (@koic)
  • #12233: Make Style/SlicingWithRange aware of redundant and beginless range. (@koic)
  • #12388: Reject additional 'expanded' EnforcedStyle options when --no-auto-gen-enforced-style is given. (@kpost)
  • #12593: Require Parser 3.3.0.2 or higher. (@koic)

v1.59.0

4 months ago

New features

  • #12518: Add new Lint/ItWithoutArgumentsInBlock cop. (@koic)

Bug fixes

  • #12434: Fix a false positive for Lint/LiteralAssignmentInCondition when using interpolated string or xstring literals. (@koic)
  • #12435: Fix a false positive for Lint/SelfAssignment when using attribute assignment with method call with arguments. (@koic)
  • #12444: Fix false positive for Style/HashEachMethods when receiver literal is not a hash literal. (@koic)
  • #12524: Fix a false positive for Style/MethodCallWithArgsParentheses when EnforcedStyle: omit_parentheses and parens in when clause is used to pass an argument. (@koic)
  • #12505: Fix a false positive for Style/RedundantParentheses when using parenthesized lambda or proc with do...end block. (@koic)
  • #12442: Fix an incorrect autocorrect for Style/CombinableLoops when looping over the same data as previous loop in do...end and {...} blocks. (@koic)
  • #12432: Fix a false positive for Lint/LiteralAssignmentInCondition when using parallel assignment with splat operator in block of guard condition. (@koic)
  • #12441: Fix false positives for Style/HashEachMethods when using destructed block arguments. (@koic)
  • #12436: Fix false positives for Style/RedundantParentheses when a part of range is a parenthesized condition. (@koic)
  • #12429: Fix incorrect autocorrect for Style/MapToHash when using dot method calls for to_h. (@koic)
  • #12488: Make Lint/HashCompareByIdentity aware of safe navigation operator. (@koic)
  • #12489: Make Lint/NextWithoutAccumulator aware of safe navigation operator. (@koic)
  • #12490: Make Lint/NumberConversion aware of safe navigation operator. (@koic)
  • #12491: Make Lint/RedundantWithIndex aware of safe navigation operator. (@koic)
  • #12492: Make Lint/RedundantWithObject aware of safe navigation operator. (@koic)
  • #12493: Make Lint/UnmodifiedReduceAccumulator aware of safe navigation operator. (@koic)
  • #12473: Make Style/ClassCheck aware of safe navigation operator. (@koic)
  • #12445: Make Style/CollectionCompact aware of safe navigation operator. (@koic)
  • #12474: Make Style/ConcatArrayLiterals aware of safe navigation operator. (@koic)
  • #12476: Make Style/DateTime aware of safe navigation operator. (@koic)
  • #12479: Make Style/EachWithObject aware of safe navigation operator. (@koic)
  • #12446: Make Style/HashExcept aware of safe navigation operator. (@koic)
  • #12447: Make Style/MapCompactWithConditionalBlock aware of safe navigation operator. (@koic)
  • #12484: Make Style/Next aware of safe navigation operator. (@koic)
  • #12486: Make Style/RedundantArgument aware of safe navigation operator. (@koic)
  • #12454: Make Style/RedundantFetchBlock aware of safe navigation operator. (@koic)
  • #12495: Make Layout/RedundantLineBreak aware of safe navigation operator. (@koic)
  • #12455: Make Style/RedundantSortBy aware of safe navigation operator. (@koic)
  • #12456: Make Style/RedundantSortBy aware of safe navigation operator. (@koic)
  • #12480: Make Style/ExactRegexpMatch aware of safe navigation operator. (@koic)
  • #12457: Make Style/Sample aware of safe navigation operator. (@koic)
  • #12458: Make Style/SelectByRegexp cops aware of safe navigation operator. (@koic)
  • #12494: Make Layout/SingleLineBlockChain aware of safe navigation operator. (@koic)
  • #12461: Make Style/StringChars aware of safe navigation operator. (@koic)
  • #12468: Make Style/Strip aware of safe navigation operator. (@koic)
  • #12469: Make Style/UnpackFirst aware of safe navigation operator. (@koic)

Changes

  • #12522: Make Style/MethodCallWithoutArgsParentheses allow the parenthesized it method in a block. (@koic)
  • #12523: Make Style/RedundantSelf allow the self.it method in a block. (@koic)