NegatedWhile properly handles negated until condition. (@bbatsov)
#925: Do not disable the Syntax cop in output from --auto-gen-config. (@jonas054)
#943: Fix auto-correction interference problem between SpaceAfterComma and other cops. (@jonas054)
#954: Fix auto-correction bug in NilComparison. (@bbatsov)
#953: Fix auto-correction bug in NonNilCheck. (@bbatsov)
#952: Handle implicit receiver in StringConversionInInterpolation. (@bbatsov)
#956: Apply ClassMethods check only on class/module bodies. (@bbatsov)
#945: Fix SpaceBeforeFirstArg cop for multiline argument and exclude assignments. (@cschramm)
#948: Blocks cop avoids auto-correction if it would introduce a semantic change. (@jonas054)
#946: Allow non-nil checks that are the final expressions of predicate method definitions in NonNilCheck. (@bbatsov)
#957: Allow space + comment inside parentheses, braces, and square brackets. (@jonas054)
0.20.0 (02/04/2014)
New features
New cop GuardClause checks for conditionals that can be replaced by guard clauses. (@bbatsov)
New cop EmptyInterpolation checks for empty interpolation in double-quoted strings. (@bbatsov)
#899: Make LineEndConcatenation cop << aware. (@mockdeep)
#896: New option --fail-level changes minimum severity for exit with error code. (@hiroponz)
#893: New option --force-exclusion forces excluding files specified in the configuration Exclude even if they are explicitly passed as arguments. (@yujinakayama)
VariableInterpolation cop does auto-correction. (@bbatsov)
New lint cop SpaceBeforeFirstArg checks for space between the method name and the first argument in method calls without parentheses. (@jonas054)
New style cop SingleSpaceBeforeFirstArg checks that no more than one space is used between the method name and the first argument in method calls without parentheses. (@jonas054)
New formatter disabled_lines displays cops and line ranges disabled by inline comments. (@fshowalter)
New cop UselessAccessModifiers checks for access modifiers that have no effect. (@fshowalter)
Use offense in all messages instead of offence. (@bbatsov)
For indentation of if/unless/while/until bodies when the result is assigned to a variable, instead of supporting two styles simultaneously, IndentationWidth now supports one style of indentation at a time, specified by EndAlignment/AlignWith. (@jonas054)
Renamed Style param of DotPosition cop to EnforcedStyle. (@bbatsov)
Add length value to locations of offense in JSON formatter. (@yujinakayama)
SpaceAroundBlockBraces cop replaced by SpaceBeforeBlockBraces and SpaceInsideBlockBraces. (@jonas054)
SpaceAroundEqualsInParameterDefault cop is now configurable with the EnforcedStyle option. (@jonas054)
Bugs fixed
#790: Fix auto-correction interference problem between MethodDefParentheses and other cops. (@jonas054)
#794: Fix handling of modifier keywords with required parentheses in ParenthesesAroundCondition. (@bbatsov)
#804: Fix a false positive with operator assignments in a loop (including begin..rescue..end with retry) in UselessAssignment. (@yujinakayama)
#815: Fix a false positive for heredocs with blank lines in them in EmptyLines. (@bbatsov)
Auto-correction is now more robust and less likely to die because of RangeError or "clobbering". (@jonas054)
Offenses always reported in order of position in file, also during --auto-correct runs. (@jonas054)
Fix problem with [Corrected] tag sometimes missing in output from --auto-correct runs. (@jonas054)
Fix message from EndAlignment cop when AlignWith is keyword. (@jonas054)
Handle case conditions in LiteralInCondition. (@bbatsov)
#822: Fix a false positive in DotPosition when enforced style is set to trailing. (@bbatsov)
Handle properly dynamic strings in LineEndConcatenation. (@bbatsov)
#832: Fix auto-correction interference problem between BracesAroundHashParameters and SpaceInsideHashLiteralBraces. (@jonas054)
Fix bug in auto-correction of alignment so that only space can be removed. (@jonas054)
Fix bug in IndentationWidth auto-correction so it doesn't correct things that IndentationConsistency should correct. (@jonas054)
#847: Fix bug in RegexpLiteral concerning --auto-gen-config. (@jonas054)
#848: Fix bug in --show-cops that made it print the default configuration rather than the current configuration. (@jonas054)
#862: Fix a bug where single line rubocop:disable comments with indentations were treated as multiline cop disabling comments. (@yujinakayama)
Fix a bug where rubocop:disable comments with a cop name including all (e.g. MethodCallParentheses) were disabling all cops. (@yujinakayama)
Fix a bug where string and regexp literals including # rubocop:disable were confused with real comments. (@yujinakayama)
#877: Fix bug in PercentLiteralDelimiters concerning auto-correct of regular expressions with interpolation. (@hannestyden)
0.18.1 (02/02/2014)
Bugs fixed
Remove double reporting in EmptyLinesAroundBody of empty line inside otherwise empty class/module/method that caused crash in autocorrect. (@jonas054)
#779: Fix a false positive in LineEndConcatenation. (@bbatsov)
#751: Fix Documentation cop so that a comment followed by an empty line and then a class definition is not considered to be class documentation. (@jonas054)
#783: Fix a false positive in ParenthesesAroundCondition when the parentheses are actually required. (@bbatsov)
#781: Fix problem with back-and-forth auto-correction in AccessModifierIndentation. (@jonas054)
#785: Fix false positive on %w arrays in TrailingComma. (@jonas054)
#782: Fix false positive in AlignHash for single line hashes. (@jonas054)
0.18.0 (30/01/2014)
New features
#714: New cop RequireParentheses checks for method calls without parentheses together with a boolean operator indicating that a mistake about precedence may have been made. (@jonas054)
#743: WordArray cop does auto-correction. (@jonas054)
#702: Improve rubocop-todo.yml with comments about offence count, configuration parameters, and auto-correction support. (@jonas054)
Add new command-line flag -D/--display-cop-names to trigger the display of cop names in offence messages. (@bbatsov)
#733: NumericLiterals cop does auto-correction. (@dblock)
#713: New cop TrailingComma checks for comma after the last item in a hash, array, or method call parameter list. (@jonas054)
Changes
#581: Extracted a new cop AmbiguousOperator from Syntax cop. It checks for ambiguous operators in the first argument of a method invocation without parentheses. (@yujinakayama)
Extracted a new cop AmbiguousRegexpLiteral from Syntax cop. It checks for ambiguous regexp literals in the first argument of a method invocation without parentheses. (@yujinakayama)
Extracted a new cop UselessElseWithoutRescue from Syntax cop. It checks for useless else in begin..end without rescue. (@yujinakayama)
Extracted a new cop InvalidCharacterLiteral from Syntax cop. It checks for invalid character literals with a non-escaped whitespace character (e.g. ?). (@yujinakayama)
Removed Syntax cop from the configuration. It no longer can be disabled and it reports only invalid syntax offences. (@yujinakayama)
#688: Output from rubocop --show-cops now looks like a YAML configuration file. The --show-cops option takes a comma separated list of cops as optional argument. (@jonas054)
New cop IndentationConsistency extracted from IndentationWidth, which has checked two kinds of offences until now. (@jonas054)
Bugs fixed
#698: Support Windows paths on command-line. (@rifraf)
#498: Disable terminal ANSI escape sequences when a formatter's output is not a TTY. (@yujinakayama)
#703: BracesAroundHashParameters auto-correction broken with trailing comma. (@jonas054)
#709: When EndAlignment has configuration AlignWith: variable, it now handles @@a = if ... and a, b = if .... (@jonas054)
SpaceAroundOperators now reports an offence for @@a=0. (@jonas054)
#707: Fix error on operator assignments in top level scope in UselessAssignment. (@yujinakayama)
Fix a bug where some offences were discarded when any cop that has specific target file path (by Include or Exclude under each cop configuration) had run. (@yujinakayama)
#724: Accept colons denoting required keyword argument (a new feature in Ruby 2.1) without trailing space in SpaceAfterColon. (@jonas054)
#716: Fixed a regression in the auto-correction logic of MethodDefParentheses. (@bbatsov)
Inspected projects that lack a .rubocop.yml file, and therefore get their configuration from RuboCop's config/default.yml, no longer get configuration from RuboCop's .rubocop.yml and rubocop-todo.yml. (@jonas054)
#730: EndAlignment now handles for example private def some_method, which is allowed in Ruby 2.1. It requires end to be aligned with private, not def, in such cases. (@jonas054)
#744: Any new offences created by --auto-correct are now handled immediately and corrected when possible, so running --auto-correct once is enough. (@jonas054)
#748: Auto-correction conflict between EmptyLinesAroundBody and TrailingWhitespace resolved. (@jonas054)
ParenthesesAroundCondition no longer crashes on parentheses around the condition in a ternary if. (@jonas054)
#738: Fix a false positive in StringLiterals. (@bbatsov)
0.16.0 (25/12/2013)
New features
#612: BracesAroundHashParameters cop does auto-correction. (@dblock)
#614: ParenthesesAroundCondition cop does auto-correction. (@dblock)
#624: EmptyLines cop does auto-correction. (@dblock)
New Rails cop DefaultScope ensures default_scope is called properly with a block argument. (@bbatsov)
All cops now support the Include param, which specifies the files on which they should operate. (@bbatsov)
All cops now support the Exclude param, which specifies the files on which they should not operate. (@bbatsov)
#631: IndentationWidth cop now detects inconsistent indentation between lines that should have the same indentation. (@jonas054)
#649: EmptyLinesAroundBody cop does auto-correction. (@dblock)
#577: Introduced MethodDefParentheses to allow for for requiring either parentheses or no parentheses in method definitions. Replaces DefWithoutParentheses. (@skanev)
#693: Generation of parameter values (i.e., not only Enabled: false) in rubocop-todo.yml by the --auto-gen-config option is now supported for some cops. (@jonas054)
New cop AccessorMethodName checks accessor method names for non-idiomatic names like get_attribute and set_attribute. (@bbatsov)
New cop PredicateName checks the names of predicate methods for non-idiomatic names like is_something, has_something, etc. (@bbatsov)
#668: Fix crash in EndOfLine that occurs when default encoding is US_ASCII and an inspected file has non-ascii characters. (@jonas054)
#664: Accept oneline while when condition has local variable assignment. (@emou)
Fix auto-correct for MethodDefParentheses when parentheses are required. (@skanev)
0.15.0 (06/11/2013)
New features
New cop Output checks for calls to print, puts, etc. in Rails. (@daviddavis)
New cop EmptyLinesAroundBody checks for empty lines around the bodies of class, method and module definitions. (@bbatsov)
LeadingCommentSpace cop does auto-correction. (@jonas054)
SpaceAfterControlKeyword cop does auto-correction. (@jonas054)
SpaceAfterColon cop does auto-correction. (@jonas054)
SpaceAfterComma cop does auto-correction. (@jonas054)
SpaceAfterSemicolon cop does auto-correction. (@jonas054)
SpaceAfterMethodName cop does auto-correction. (@jonas054)
SpaceAroundBlockBraces cop does auto-correction. (@jonas054)
SpaceAroundEqualsInParameterDefault cop does auto-correction. (@jonas054)
SpaceAroundOperators cop does auto-correction. (@jonas054)
SpaceBeforeModifierKeyword cop does auto-correction. (@jonas054)
SpaceInsideHashLiteralBraces cop does auto-correction. (@jonas054)
SpaceInsideBrackets cop does auto-correction. (@jonas054)
SpaceInsideParens cop does auto-correction. (@jonas054)
TrailingWhitespace cop does auto-correction. (@jonas054)
TrailingBlankLines cop does auto-correction. (@jonas054)
FinalNewline cop does auto-correction. (@jonas054)
New cop CyclomaticComplexity checks the cyclomatic complexity of methods against a configurable max value. (@jonas054)
#594: New parameter EnforcedStyleForEmptyBraces with values space and no_space (default) added to SpaceAroundBlockBraces. (@jonas054)
#603: New parameter MinSize added to WordArray to allow small string arrays, retaining the default (0). (@claco)
Changes
#557: Configuration files for excluded files are no longer loaded. (@jonas054)
#571: The default rake task now runs RuboCop over itself! (@nevir)
Encoding errors are reported as fatal offences rather than printed with red text. (@jonas054)
AccessControl cop is now configurable with the EnforcedStyle option. (@sds)
Split AccessControl cop to AccessModifierIndentation and EmptyLinesAroundAccessModifier. (@bbatsov)
#594: Add configuration parameter EnforcedStyleForEmptyBraces to SpaceInsideHashLiteralBraces cop, and change EnforcedStyleIsWithSpaces (values true, false) to EnforcedStyle (values space, no_space). (@jonas054)
Coverage builds linked from the README page are enabled again. (@jonas054)
Bugs fixed
#561: Handle properly negative literals in NumericLiterals cop. (@bbatsov)
#567: Register an offence when the last hash parameter has braces in BracesAroundHashParameters cop. (@dblock)
StringLiterals cop no longer reports errors for character literals such as ?/. That should be done only by the CharacterLiterals cop. (@jonas054)
Made auto-correct much less likely to crash due to conflicting corrections ("clobbering"). (@jonas054)
#565: $GLOBAL_VAR from English library should no longer be inserted when autocorrecting short-form global variables like $!. (@nevir)
#566: Methods that just assign a splat to an ivar are no longer considered trivial writers. (@nevir)
#585: MethodCallParentheses should allow methods starting with uppercase letter. (@bbatsov)
#574: Fix error on multiple-assignment with non-array right hand side in UselessSetterCall. (@yujinakayama)
#576: Output config validation warning to STDERR so that it won't be mixed up with formatter's output. (@yujinakayama)
#599: EndOfLine cop is operational again. (@jonas054)
#604: Fix error on implicit match conditionals (e.g. if /pattern/; end) in FavorModifier. (@yujinakayama)
#600: Don't require an empty line for access modifiers at the beginning of class/module body. (@bbatsov)
#608: RescueException no longer crashes when the namespace of a rescued class is in a local variable. (@jonas054)
#173: Allow the use of alias in the body of an instance_exec. (@bbatsov)
#554: Handle properly multi-line arrays with comments in them in WordArray. (@bbatsov)
0.14.1 (10/10/2013)
New features
#551: New cop BracesAroundHashParameters checks for braces in function calls with hash parameters. (@dblock)
New cop SpaceAfterNot tracks redundant space after the ! operator. (@bbatsov)
Bugs fixed
Fix bug concerning table and separator alignment of multi-line hash with multiple keys on the same line. (@jonas054)
#550: Fix a bug where ClassLength counted lines of inner classes/modules. (@yujinakayama)
#550: Fix a false positive for namespace class in Documentation. (@yujinakayama)
#556: Fix "Parser::Source::Range spans more than one line" bug in clang formatter. (@yujinakayama)
#552: RaiseArgs allows exception constructor calls with more than one 1 argument. (@bbatsov)
0.14.0 (07/10/2013)
New features
#491: New cop MethodCalledOnDoEndBlock keeps track of methods called on do...end blocks.
#456: New configuration parameter AllCops/RunRailsCops can be set to true for a project, removing the need to give the -R/--rails option with every invocation of rubocop.
#501: simple/clang/progress/emacs formatters now print [Corrected] along with offence message when the offence is automatically corrected.
#501: simple/clang/progress formatters now print count of auto-corrected offences in the final summary.
#501: json formatter now outputs corrected key with boolean value in offence objects whether the offence is automatically corrected.
New cop ClassLength checks for overly long class definitions.
New cop Debugger checks for forgotten calls to debugger or pry.
New cop RedundantException checks for code like raise RuntimeError, message.
#526: New cop RaiseArgs checks the args passed to raise/fail.
Changes
Cop MethodAndVariableSnakeCase replaced by MethodName and VariableName, both having the configuration parameter EnforcedStyle with values snake_case (default) and camelCase.
#519: HashSyntax cop is now configurable and can enforce the use of the classic hash rockets syntax.
#520: StringLiterals cop is now configurable and can enforce either single-quoted or double-quoted strings.
#528: Added a config option to RedundantReturn to allow a return with multiple values.
#524: Added a config option to Semicolon to allow the use of ; as an expression separator.
#525: SignalException cop is now configurable and can enforce the semantic rule or an exclusive use of raise or fail.
LambdaCall is now configurable and enforce either Proc#call or Proc#().
#529: Added config option EnforcedStyle to SpaceAroundBraces.
#529: Changed config option NoSpaceBeforeBlockParameters to SpaceBeforeBlockParameters.
Support Parser 2.0.0 (non-beta).
Bugs fixed
#514: Fix alignment of the hash containing different key lengths in one line.
#496: Fix corner case crash in AlignHash cop: single key/value pair when configuration is table for '=>' and separator for :.
#502: Don't check non-decimal literals with NumericLiterals.
#448: Fix auto-correction of parameters spanning more than one line in AlignParameters cop.
#493: Support disabling Syntax offences with warning severity.
Fix bug appearing when there were different values for the AllCops/RunRailsCops configuration parameter in different directories.
#512: Fix bug causing crash in AndOr auto-correction.
#515: Fix bug causing AlignParameters and AlignArray auto-correction to destroy code.
#516: Fix bug causing RedundantReturn auto-correction to produce invalid code.
SignalException cop now finds raise calls anywhere, not only in begin sections.
#538: Fix bug causing Blocks auto-correction to produce invalid code.
0.13.1 (19/09/2013)
New features
HashSyntax cop does auto-correction.
#484: Allow calls to self to fix name clash with argument.
Renamed SpaceAroundBraces to SpaceAroundBlockBraces.
SpaceAroundBlockBraces now has a NoSpaceBeforeBlockParameters config option to enforce a style for blocks with parameters like {|foo| puts }.
New cop LambdaCall tracks uses of the obscure lambda.(...) syntax.
Bugs fixed
Fix crash on empty input file in FinalNewline.
#485: Fix crash on multiple-assignment and op-assignment in UselessSetterCall.
#497: Fix crash in UselessComparison and NilComparison.
0.13.0 (13/09/2013)
New features
New configuration parameter AllowAdjacentOneLineDefs for EmptyLineBetweenDefs.
New cop MultilineBlockChain keeps track of chained blocks spanning multiple lines.
RedundantSelf cop does auto-correction.
AvoidPerlBackrefs cop does auto-correction.
AvoidPerlisms cop does auto-correction.
RedundantReturn cop does auto-correction.
Blocks cop does auto-correction.
New cop TrailingBlankLines keeps track of extra blanks lines at the end of source file.
New cop AlignHash keeps track of bad alignment in multi-line hash literals.
New cop AlignArray keeps track of bad alignment in multi-line array literals.
New cop SpaceBeforeModifierKeyword keeps track of missing space before a modifier keyword (if, unless, while, until).
New cop FinalNewline keeps tracks of the required final newline in a source file.
Highlightling corrected in SpaceInsideHashLiteralBraces and SpaceAroundBraces cops.
Changes
#447: BlockAlignment cop now allows end to be aligned with the start of the line containing do.
SymbolName now has an AllowDots config option to allow symbols like :'whatever.submit_button'.
#469: Extracted useless setter call tracking part of UselessAssignment cop to UselessSetterCall.
#469: Merged UnusedLocalVariable cop into UselessAssignment.
#458: The merged UselessAssignment cop now has advanced logic that tracks not only assignment at the end of the method but also every assignment in every scope.
#466: Allow built-in JRuby global vars in AvoidGlobalVars.
Added a config option AllowedVariables to AvoidGlobalVars to allow users to whitelist certain global variables.
Renamed AvoidGlobalVars to GlobalVars.
Renamed AvoidPerlisms to SpecialGlobalVars.
Renamed AvoidFor to For.
Renamed AvoidClassVars to ClassVars.
Renamed AvoidPerlBackrefs to PerlBackrefs.
NumericLiterals now accepts a config param MinDigits - the minimal number of digits in the integer portion of number for the cop to check it.
Bugs fixed
#449: Remove whitespaces between condition and do with WhileUntilDo auto-correction.
Continue with file inspection after parser warnings. Give up only on syntax errors.
Don't trigger the HashSyntax cop on digit-starting keys.
Fix crashes while inspecting class definition subclassing another class stored in a local variable in UselessAssignment (formerly of UnusedLocalVariable) and ShadowingOuterLocalVariable (like clazz = Array; class SomeClass < clazz; end).
#463: Do not warn if using destructuring in second reduce argument (ReduceArguments).
0.12.0 (23/08/2013)
New features
#439: Added formatter 'OffenceCount' which outputs a summary list of cops and their offence count.
#395: Added --show-cops option to show available cops.
New cop NilComparison keeps track of comparisons like == nil.
New cop EvenOdd keeps track of occasions where Fixnum#even? or Fixnum#odd? should have been used (like x % 2 == 0).
New cop IndentationWidth checks for files using indentation that is not two spaces.
New cop SpaceAfterMethodName keeps track of method definitions with a space between the method name and the opening parenthesis.
New cop ParenthesesAsGroupedExpression keeps track of method calls with a space before the opening parenthesis.
New cop HashMethods keeps track of uses of deprecated Hash methods.
New Rails cop HasAndBelongsToMany checks for uses of has_and_belongs_to_many.
New Rails cop ReadAttribute tracks uses of read_attribute.
Attr cop does auto-correction.
CollectionMethods cop does auto-correction.
SignalException cop does auto-correction.
EmptyLiteral cop does auto-correction.
MethodCallParentheses cop does auto-correction.
DefWithParentheses cop does auto-correction.
DefWithoutParentheses cop does auto-correction.
Changes
Dropped -s/--silent option. Now progress/simple/clang formatters always report summary and emacs/files formatters no longer report.
Dropped the LineContinuation cop.
Bugs fixed
#432: Fix false positive for constant assignments when rhs is a method call with block in ConstantName.
#434: Support classes and modules defined with Class.new/Module.new in AccessControl.
Fix which ranges are highlighted in reports from IfUnlessModifier, WhileUntilModifier, and MethodAndVariableSnakeCase cop.
#438: Accept setting attribute on method argument in UselessAssignment.
0.11.1 (12/08/2013)
Changes
#425: ColonMethodCalls now allows constructor methods (like Nokogiri::HTML() to be called with double colon.
Bugs fixed
#427: FavorUnlessOverNegatedIf triggered when using elsifs.
New cop RedundantReturn tracks redundant returns in method bodies.
New cop RedundantBegin tracks redundant begin blocks in method definitions.
New cop RedundantSelf tracks redundant uses of self.
New cop EmptyEnsure tracks empty ensure blocks.
New cop CommentAnnotation tracks formatting of annotation comments such as TODO.
Added custom rake task.
New formatter FileListFormatter outputs just a list of files with offences in them (related to #357).
Changes
TrivialAccessors now has an ExactNameMatch config option (related to #308).
TrivialAccessors now has an ExcludePredicates config option (related to #326).
Cops don't inherit from Parser::AST::Rewriter anymore. All 3rd party Cops should remove the call to super in their callbacks. If you implement your own processing you need to define the #investigate method instead of #inspect. Refer to the documentation of Cop::Commissioner and Cop::Cop classes for more information.
EndAlignment cop split into EndAlignment and BlockAlignment cops.
Bugs fixed
#288: Work with absolute Excludes paths internally (2nd fix for this issue).
TrivialAccessors now detects class attributes as well as instance attributes.
#338: Fix end alignment of blocks in chained assignments.
#345: Add $SAFE to the list of built-in global variables.
#340: Override config parameters rather than merging them.
#349: Fix false positive for CharacterLiteral (%w(?)).
#346: Support method chains for block end alignment checks.
#350: Support line breaks between variables on left hand side for block end alignment checks.
#356: Allow safe assignment in ParenthesesAroundCondition.
Misc
Improved performance on Ruby 1.9 by about 20%.
Improved overall performance by about 35%.
0.9.1 (05/07/2013)
New features
Added -l/--lint option to allow doing only linting with no style checks (similar to running ruby -wc).
Changes
Removed the BlockAlignSchema configuration option from EndAlignment. We now support only the default alignment schema - StartOfAssignment.
Made the preferred collection methods in CollectionMethods configurable.
Made the DotPosition cop configurable - now both leading and trailing styles are supported.
Bugs fixed
#318: Correct some special cases of block end alignment.
#321: Ignore variables whose name start with _ in ShadowingOuterLocalVariable.
#322: Fix exception of UnusedLocalVariable and ShadowingOuterLocalVariable when inspecting keyword splat argument.
#316: Correct nested postfix unless in MultilineIfThen.
#327: Fix false offences for block expression that span on two lines in EndAlignment.
#332: Fix exception of UnusedLocalVariable and ShadowingOuterLocalVariable when inspecting named captures.
#333: Fix a case that EnsureReturn throws an exception when ensure has no body.
0.9.0 (01/07/2013)
New features
Introduced formatter feature, enables custom formatted output and multiple outputs.
Added progress formatter and now it's the default. (--format progress).
Added JSON formatter. (--format json).
Added clang style formatter showing the offending source. code. (--format clang). The clang formatter marks a whole range rather than just the starting position, to indicate more clearly where the problem is.
Added -f/--format option to specify formatter.
Added -o/--out option to specify output file for each formatter.
Added -r/--require option to inject external Ruby code into RuboCop.
Added -V/--verbose-version option that displays Parser version and Ruby version as well.
Added -R/--rails option that enables extra Rails-specific cops.
Added support for auto-correction of some offences with -a/--auto-correct.
New cop CaseEquality checks for explicit use of ===.
New cop AssignmentInCondition checks for assignment in conditions.
New cop EndAlignment tracks misaligned end keywords.
New cop Void tracks uses of literals/variables/operators in possibly void context.
New cop Documentation checks for top level class/module doc comments.
New cop UnreachableCode tracks unreachable code segments.
New cop MethodCallParentheses tracks unwanted braces in method calls.
New cop UnusedLocalVariable tracks unused local variables for each scope.
New cop ShadowingOuterLocalVariable tracks use of the same name as outer local variables for block arguments or block local variables.
New cop WhileUntilDo tracks uses of do with multi-line while/until.
New cop CharacterLiteral tracks uses of character literals (?x).
New cop EndInMethod tracks uses of END in method definitions.
New cop LiteralInCondition tracks uses of literals in the conditions of if/while/until.
New cop BeginBlock tracks uses of BEGIN blocks.
New cop EndBlock tracks uses of END blocks.
New cop DotPosition tracks the dot position in multi-line method calls.
New cop Attr tracks uses of Module#attr.
Add support for auto-correction of some offences with -a/--auto-correct.
Most formatters (progress, simple and clang) now print relative file paths if the paths are under the current working directory.
Migrate all cops to new namespaces. Rubocop::Cop::Lint is for cops that emit warnings. Rubocop::Cop::Style is for cops that do not belong in other namespaces.
Merge FavorPercentR and PercentR into one cop called RegexpLiteral, and add configuration parameter MaxSlashes.
Add CountKeywordArgs configuration option to ParameterLists cop.
Added ability to include or exclude files/directories through .rubocop.yml.
Added option --only for running a single cop.
Relax semicolon rule for one line methods, classes and modules.
Configuration files, such as .rubocop.yml, can now include configuration from other files through the inherit_from directive. All configuration files implicitly inherit from config/default.yml.
New cop ClassMethods checks for uses for class/module names in definitions of class/module methods.
New cop SingleLineMethods checks for methods implemented on a single line.
New cop FavorJoin checks for usages of Array#* with a string argument.
New cop BlockComments tracks uses of block comments(=begin/=end comments).
New cop EmptyLines tracks consecutive blank lines.
New cop WordArray tracks arrays of words.
#108: New cop SpaceInsideHashLiteralBraces checks for spaces inside hash literal braces - style is configurable.
New cop LineContinuation tracks uses of the line continuation character (\).
New cop SymbolArray tracks arrays of symbols.
Print warnings for unrecognized names in configuration files.
New cop TrivialAccessors tracks method definitions that could be automatically generated with attr_* methods.
New cop LeadingCommentSpace checks for missing space after # in comments.
New cop ColonMethodCall tracks uses of :: for method calls.
New cop AvoidGlobalVars tracks uses of non built-in global variables.
New cop SpaceAfterControlKeyword tracks missing spaces after if/elsif/case/when/until/unless/while.
New cop Not tracks uses of the not keyword.
New cop Eval tracks uses of the eval function.
Bugs fixed
#101: SpaceAroundEqualsInParameterDefault doesn't work properly with empty string.
Fix BraceAfterPercent for %W, %i and %I and added more tests.
Fix a false positive in the Alias cop. :alias is no longer treated as keyword.
ArrayLiteral now properly detects Array.new.
HashLiteral now properly detects Hash.new.
VariableInterpolation now detects regexp back references and doesn't crash.
Don't generate pathnames like some/project//some.rb.
#151: Don't print the unrecognized cop warning several times for the same .rubocop.yml.
Misc
Renamed Indentation cop to CaseIndentation to avoid confusion.
Renamed EmptyLines cop to EmptyLineBetweenDefs to avoid confusion.
0.6.1 (04/28/2013)
New features
Split AsciiIdentifiersAndComments cop in two separate cops.
Bugs fixed
#90: Two cops crash when scanning code using super.