{"action":"published","release":{"url":"https://api.github.com/repos/bbatsov/rubocop/releases/2088337","assets_url":"https://api.github.com/repos/bbatsov/rubocop/releases/2088337/assets","upload_url":"https://uploads.github.com/repos/bbatsov/rubocop/releases/2088337/assets{?name,label}","html_url":"https://github.com/bbatsov/rubocop/releases/tag/v0.35.0","id":2088337,"tag_name":"v0.35.0","target_commitish":"master","name":"RuboCop 0.35.0","draft":false,"author":{"login":"bbatsov","id":103882,"avatar_url":"https://avatars.githubusercontent.com/u/103882?v=3","gravatar_id":"","url":"https://api.github.com/users/bbatsov","html_url":"https://github.com/bbatsov","followers_url":"https://api.github.com/users/bbatsov/followers","following_url":"https://api.github.com/users/bbatsov/following{/other_user}","gists_url":"https://api.github.com/users/bbatsov/gists{/gist_id}","starred_url":"https://api.github.com/users/bbatsov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbatsov/subscriptions","organizations_url":"https://api.github.com/users/bbatsov/orgs","repos_url":"https://api.github.com/users/bbatsov/repos","events_url":"https://api.github.com/users/bbatsov/events{/privacy}","received_events_url":"https://api.github.com/users/bbatsov/received_events","type":"User","site_admin":false},"prerelease":false,"created_at":"2015-11-07T06:46:26Z","published_at":"2015-11-07T06:47:43Z","assets":[],"tarball_url":"https://api.github.com/repos/bbatsov/rubocop/tarball/v0.35.0","zipball_url":"https://api.github.com/repos/bbatsov/rubocop/zipball/v0.35.0","body":"Special thanks to [Alex Dowad](https://github.com/alexdowad) who\r\ncontributed an amazing number of bug fixes and improvements for this\r\nrelease! Much appreciated!\r\n\r\nAnd happy birthday to my beloved granny Vasilka, who turns today 78 years!\r\nThis release is dedicated to her!\r\n\r\n### New features\r\n\r\n* [#2028](https://github.com/bbatsov/rubocop/issues/2028): New config `ExtraDetails` supports addition of `Details` param to all cops to allow extra details on offense to be displayed. ([@tansaku][])\r\n* [#2036](https://github.com/bbatsov/rubocop/issues/2036): New cop `Style/StabbyLambdaParentheses` will find and correct cases where a stabby lambda's paramaters are not wrapped in parentheses. ([@hmadison][])\r\n* [#2246](https://github.com/bbatsov/rubocop/pull/2246): `Style/TrailingUnderscoreVariable` will now register an offense for `*_`. ([@rrosenblum][])\r\n* [#2246](https://github.com/bbatsov/rubocop/pull/2246): `Style/TrailingUnderscoreVariable` now has a configuration to remove named underscore variables (Defaulted to false). ([@rrosenblum][])\r\n* [#2276](https://github.com/bbatsov/rubocop/pull/2276): New cop `Performance/FixedSize` will register an offense when calling `length`, `size`, or `count` on statically sized objected (strings, symbols, arrays, and hashes). ([@rrosenblum][])\r\n* New cop `Style/NestedModifier` checks for nested `if`, `unless`, `while` and `until` modifier statements. ([@lumeet][])\r\n* [#2270](https://github.com/bbatsov/rubocop/pull/2270): Add a new `inherit_gem` configuration to inherit a config file from an installed gem [(originally requested in #290)](https://github.com/bbatsov/rubocop/issues/290). ([@jhansche][])\r\n* Allow `StyleGuide` parameters in local configuration for all cops, so users can add references to custom style guide documents. ([@cornelius][])\r\n* `UnusedMethodArgument` cop allows configuration to skip keyword arguments. ([@apiology][])\r\n* [#2318](https://github.com/bbatsov/rubocop/pull/2318): `Lint/Debugger` cop now checks for `Pry.rescue`. ([@rrosenblum][])\r\n* [#2277](https://github.com/bbatsov/rubocop/pull/2277): New cop `Style/FirstArrayElementLineBreak` checks for a line break before the first element in a multi-line array. ([@panthomakos][])\r\n* [#2277](https://github.com/bbatsov/rubocop/pull/2277): New cop `Style/FirstHashElementLineBreak` checks for a line break before the first element in a multi-line hash. ([@panthomakos][])\r\n* [#2277](https://github.com/bbatsov/rubocop/pull/2277): New cop `Style/FirstMethodArgumentLineBreak` checks for a line break before the first argument in a multi-line method call. ([@panthomakos][])\r\n* [#2277](https://github.com/bbatsov/rubocop/pull/2277): New cop `Style/FirstMethodParameterLineBreak` checks for a line break before the first parameter in a multi-line method parameter definition. ([@panthomakos][])\r\n* Add `Rails/PluralizationGrammar` cop, checks for incorrect grammar when using methods like `3.day.ago`, when you should write `3.days.ago`. ([@maxjacobson][])\r\n* [#2347](https://github.com/bbatsov/rubocop/pull/2347): `Lint/Eval` cop does not warn about \"security risk\" when eval argument is a string literal without interpolations. ([@alexdowad][])\r\n* [#2335](https://github.com/bbatsov/rubocop/issues/2335): `Style/VariableName` cop checks naming style of method parameters. ([@alexdowad][])\r\n* [#2329](https://github.com/bbatsov/rubocop/pull/2329): New style `braces_for_chaining` for `Style/BlockDelimiters` cop enforces braces on a multi-line block if its return value is being chained with another method. ([@panthomakos][])\r\n* `Lint/LiteralInCondition` warns if a symbol or dynamic symbol is used as a condition. ([@alexdowad][])\r\n* [#2369](https://github.com/bbatsov/rubocop/issues/2369): `Style/TrailingComma` doesn't add a trailing comma to a multiline method chain which is the only arg to a method call. ([@alexdowad][])\r\n* `CircularArgumentReference` cop updated to lint for ordinal circular argument references on top of optional keyword arguments. ([@maxjacobson][])\r\n* Added ability to download shared rubocop config files from remote urls. ([@ptrippett][])\r\n* [#1601](https://github.com/bbatsov/rubocop/issues/1601): Add `IgnoreEmptyMethods` config parameter for `Lint/UnusedMethodArgument` and `IgnoreEmptyBlocks` config parameter for `Lint/UnusedBlockArgument` cops. ([@alexdowad][])\r\n* [#1729](https://github.com/bbatsov/rubocop/issues/1729): `Style/MethodDefParentheses` supports new 'require_no_parentheses_except_multiline' style. ([@alexdowad][])\r\n* [#2173](https://github.com/bbatsov/rubocop/issues/2173): `Style/AlignParameters` also checks parameter alignment for method definitions. ([@alexdowad][])\r\n* [#1825](https://github.com/bbatsov/rubocop/issues/1825): New `NameWhitelist` configuration parameter for `Style/PredicateName` can be used to suppress errors on known-good predicate names. ([@alexdowad][])\r\n* `Style/Documentation` recognizes 'Constant = Class.new' as a class definition. ([@alexdowad][])\r\n* [#1608](https://github.com/bbatsov/rubocop/issues/1608): Add new 'align_braces' style for `Style/IndentHash`. ([@alexdowad][])\r\n* `Style/Next` can autocorrect. ([@alexdowad][])\r\n\r\n### Bug Fixes\r\n\r\n* [#2265](https://github.com/bbatsov/rubocop/issues/2265): Handle unary `+` in `ExtraSpacing` cop. ([@jonas054][])\r\n* [#2275](https://github.com/bbatsov/rubocop/pull/2275): Copy default `Exclude` into `Exclude` lists in `.rubocop_todo.yml`. ([@jonas054][])\r\n* `Style/IfUnlessModifier` accepts blocks followed by a chained call. ([@lumeet][])\r\n* [#2261](https://github.com/bbatsov/rubocop/issues/2261): Make relative `Exclude` paths in `$HOME/.rubocop_todo.yml` be relative to current directory. ([@jonas054][])\r\n* [#2286](https://github.com/bbatsov/rubocop/issues/2286): Handle auto-correction of empty method when `AllowIfMethodIsEmpty` is `false` in `Style/SingleLineMethods`. ([@jonas054][])\r\n* [#2246](https://github.com/bbatsov/rubocop/pull/2246): Do not register an offense for `Style/TrailingUnderscoreVariable` when the underscore variable is preceeded by a splat variable. ([@rrosenblum][])\r\n* [#2292](https://github.com/bbatsov/rubocop/pull/2292): Results should not be stored in the cache if affected by errors (crashes). ([@jonas054][])\r\n* [#2280](https://github.com/bbatsov/rubocop/issues/2280): Avoid reporting space between hash literal keys and values in `Style/ExtraSpacing`. ([@jonas054][])\r\n* [#2284](https://github.com/bbatsov/rubocop/issues/2284): Fix result cache being shared between ruby versions. ([@miquella][])\r\n* [#2285](https://github.com/bbatsov/rubocop/issues/2285): Fix `ConfigurableNaming#class_emitter_method?` error when handling singleton class methods. ([@palkan][])\r\n* [#2295](https://github.com/bbatsov/rubocop/issues/2295): Fix Performance/Detect autocorrect to handle rogue newlines. ([@palkan][])\r\n* [#2294](https://github.com/bbatsov/rubocop/issues/2294): Do not register an offense in `Performance/StringReplacement` for regex with options. ([@rrosenblum][])\r\n* Fix `Style/UnneededPercentQ` condition for single-quoted literal containing interpolation-like string. ([@eagletmt][])\r\n* [#2324](https://github.com/bbatsov/rubocop/issues/2324): Handle `--only Lint/Syntax` and `--except Lint/Syntax` correctly. ([@jonas054][])\r\n* [#2317](https://github.com/bbatsov/rubocop/issues/2317): Handle `case` as an argument correctly in `Lint/EndAlignment`. ([@lumeet][])\r\n* [#2287](https://github.com/bbatsov/rubocop/issues/2287): Fix auto-correct of lines with only whitespace in `Style/IndentationWidth`. ([@lumeet][])\r\n* [#2331](https://github.com/bbatsov/rubocop/issues/2331): Do not register an offense in `Performance/Size` for `count` with an argument. ([@rrosenblum][])\r\n* Handle a backslash at the end of a line in `Style/SpaceAroundOperators`. ([@lumeet][])\r\n* Don't warn about lack of \"leading space\" in a =begin/=end comment. ([@alexdowad][])\r\n* [#2307](https://github.com/bbatsov/rubocop/issues/2307): In `Lint/FormatParameterMismatch`, don't register an offense if either argument to % is not a literal. ([@alexdowad][])\r\n* [#2356](https://github.com/bbatsov/rubocop/pull/2356): `Style/Encoding` will now place the encoding comment on the second line if the first line is a shebang. ([@rrosenblum][])\r\n* `Style/InitialIndentation` cop doesn't error out when a line begins with an integer literal. ([@alexdowad][])\r\n* [#2296](https://github.com/bbatsov/rubocop/issues/2296): In `Style/DotPosition`, don't \"correct\" (and break) a method call which has a line comment (or blank line) between the dot and the selector. ([@alexdowad][])\r\n* [#2272](https://github.com/bbatsov/rubocop/issues/2272): `Lint/NonLocalExitFromIterator` does not warn about `return` in a block which is passed to `Module#define_method`. ([@alexdowad][])\r\n* [#2262](https://github.com/bbatsov/rubocop/issues/2262): Replace `Rainbow` reference with `Colorizable#yellow`. ([@minustehbare][])\r\n* [#2068](https://github.com/bbatsov/rubocop/issues/2068): Display warning if `Style/Copyright` is misconfigured. ([@alexdowad][])\r\n* [#2321](https://github.com/bbatsov/rubocop/issues/2321): In `Style/EachWithObject`, don't replace reduce with each_with_object if the accumulator parameter is assigned to in the block. ([@alexdowad][])\r\n* [#1981](https://github.com/bbatsov/rubocop/issues/1981): `Lint/UselessAssignment` doesn't erroneously identify assignments in identical if branches as useless. ([@alexdowad][])\r\n* [#2323](https://github.com/bbatsov/rubocop/issues/2323): `Style/IfUnlessModifier` cop parenthesizes autocorrected code when necessary due to operator precedence, to avoid changing its meaning. ([@alexdowad][])\r\n* [#2003](https://github.com/bbatsov/rubocop/issues/2003): Make `Lint/UnneededDisable` work with `--auto-correct`. ([@jonas054][])\r\n* Default RuboCop cache dir moved to per-user folders. ([@br3nda][])\r\n* [#2393](https://github.com/bbatsov/rubocop/pull/2393): `Style/MethodCallParentheses` doesn't fail on `obj.method ||= func()`. ([@alexdowad][])\r\n* [#2344](https://github.com/bbatsov/rubocop/pull/2344): When autocorrecting, `Style/ParallelAssignment` reorders assignment statements, if necessary, to avoid breaking code. ([@alexdowad][])\r\n* `Style/MultilineOperationAlignment` does not try to align the receiver and selector of a method call if both are on the LHS of an assignment. ([@alexdowad][])\r\n\r\n### Changes\r\n\r\n* [#2194](https://github.com/bbatsov/rubocop/issues/2194): Allow any options with `--auto-gen-config`. ([@agrimm][])\r\n\r\n[@bbatsov]: https://github.com/bbatsov\r\n[@jonas054]: https://github.com/jonas054\r\n[@yujinakayama]: https://github.com/yujinakayama\r\n[@dblock]: https://github.com/dblock\r\n[@nevir]: https://github.com/nevir\r\n[@daviddavis]: https://github.com/daviddavis\r\n[@sds]: https://github.com/sds\r\n[@fancyremarker]: https://github.com/fancyremarker\r\n[@sinisterchipmunk]: https://github.com/sinisterchipmunk\r\n[@vonTronje]: https://github.com/vonTronje\r\n[@agrimm]: https://github.com/agrimm\r\n[@pmenglund]: https://github.com/pmenglund\r\n[@chulkilee]: https://github.com/chulkilee\r\n[@codez]: https://github.com/codez\r\n[@emou]: https://github.com/emou\r\n[@skanev]: http://github.com/skanev\r\n[@claco]: http://github.com/claco\r\n[@rifraf]: http://github.com/rifraf\r\n[@scottmatthewman]: https://github.com/scottmatthewman\r\n[@ma2gedev]: http://github.com/ma2gedev\r\n[@jeremyolliver]: https://github.com/jeremyolliver\r\n[@hannestyden]: https://github.com/hannestyden\r\n[@geniou]: https://github.com/geniou\r\n[@jkogara]: https://github.com/jkogara\r\n[@tmorris-fiksu]: https://github.com/tmorris-fiksu\r\n[@mockdeep]: https://github.com/mockdeep\r\n[@hiroponz]: https://github.com/hiroponz\r\n[@tamird]: https://github.com/tamird\r\n[@fshowalter]: https://github.com/fshowalter\r\n[@cschramm]: https://github.com/cschramm\r\n[@bquorning]: https://github.com/bquorning\r\n[@bcobb]: https://github.com/bcobb\r\n[@irrationalfab]: https://github.com/irrationalfab\r\n[@tommeier]: https://github.com/tommeier\r\n[@sfeldon]: https://github.com/sfeldon\r\n[@biinari]: https://github.com/biinari\r\n[@barunio]: https://github.com/barunio\r\n[@molawson]: https://github.com/molawson\r\n[@wndhydrnt]: https://github.com/wndhydrnt\r\n[@ggilder]: https://github.com/ggilder\r\n[@salbertson]: https://github.com/salbertson\r\n[@camilleldn]: https://github.com/camilleldn\r\n[@mcls]: https://github.com/mcls\r\n[@yous]: https://github.com/yous\r\n[@vrthra]: https://github.com/vrthra\r\n[@SkuliOskarsson]: https://github.com/SkuliOskarsson\r\n[@jspanjers]: https://github.com/jspanjers\r\n[@sch1zo]: https://github.com/sch1zo\r\n[@smangelsdorf]: https://github.com/smangelsdorf\r\n[@mvz]: https://github.com/mvz\r\n[@jfelchner]: https://github.com/jfelchner\r\n[@janraasch]: https://github.com/janraasch\r\n[@jcarbo]: https://github.com/jcarbo\r\n[@oneamtu]: https://github.com/oneamtu\r\n[@toy]: https://github.com/toy\r\n[@Koronen]: https://github.com/Koronen\r\n[@blainesch]: https://github.com/blainesch\r\n[@marxarelli]: https://github.com/marxarelli\r\n[@katieschilling]: https://github.com/katieschilling\r\n[@kakutani]: https://github.com/kakutani\r\n[@rrosenblum]: https://github.com/rrosenblum\r\n[@mattjmcnaughton]: https://github.com/mattjmcnaughton\r\n[@huerlisi]: https://github.com/huerlisi\r\n[@volkert]: https://github.com/volkert\r\n[@lumeet]: https://github.com/lumeet\r\n[@mmozuras]: https://github.com/mmozuras\r\n[@d4rk5eed]: https://github.com/d4rk5eed\r\n[@cshaffer]: https://github.com/cshaffer\r\n[@eitoball]: https://github.com/eitoball\r\n[@iainbeeston]: https://github.com/iainbeeston\r\n[@pimterry]: https://github.com/pimterry\r\n[@palkan]: https://github.com/palkan\r\n[@jdoconnor]: https://github.com/jdoconnor\r\n[@meganemura]: https://github.com/meganemura\r\n[@zvkemp]: https://github.com/zvkemp\r\n[@vassilevsky]: https://github.com/vassilevsky\r\n[@gerry3]: https://github.com/gerry3\r\n[@ypresto]: https://github.com/ypresto\r\n[@clowder]: https://github.com/clowder\r\n[@mudge]: https://github.com/mudge\r\n[@mzp]: https://github.com/mzp\r\n[@bankair]: https://github.com/bankair\r\n[@crimsonknave]: https://github.com/crimsonknave\r\n[@renuo]: https://github.com/renuo\r\n[@sdeframond]: https://github.com/sdeframond\r\n[@til]: https://github.com/til\r\n[@carhartl]: https://github.com/carhartl\r\n[@dylandavidson]: https://github.com/dylandavidson\r\n[@tmr08c]: https://github.com/tmr08c\r\n[@hbd225]: https://github.com/hbd225\r\n[@l8nite]: https://github.com/l8nite\r\n[@sumeet]: https://github.com/sumeet\r\n[@ojab]: https://github.com/ojab\r\n[@chastell]: https://github.com/chastell\r\n[@glasnt]: https://github.com/glasnt\r\n[@crazydog115]: https://github.com/crazydog115\r\n[@RGBD]: https://github.com/RGBD\r\n[@panthomakos]: https://github.com/panthomakos\r\n[@matugm]: https://github.com/matugm\r\n[@m1foley]: https://github.com/m1foley\r\n[@tejasbubane]: https://github.com/tejasbubane\r\n[@bmorrall]: https://github.com/bmorrall\r\n[@fphilipe]: https://github.com/fphilipe\r\n[@gotrevor]: https://github.com/gotrevor\r\n[@awwaiid]: https://github.com/awwaiid\r\n[@segiddins]: https://github.com/segiddins\r\n[@urbanautomaton]: https://github.com/urbanautomaton.com\r\n[@unmanbearpig]: https://github.com/unmanbearpig\r\n[@maxjacobson]: https://github.com/maxjacobson\r\n[@sliuu]: https://github.com/sliuu\r\n[@edmz]: https://github.com/edmz\r\n[@syndbg]: https://github.com/syndbg\r\n[@wli]: https://github.com/wli\r\n[@caseywebdev]: https://github.com/caseywebdev\r\n[@MGerrior]: https://github.com/MGerrior\r\n[@imtayadeway]: https://github.com/imtayadeway\r\n[@mrfoto]: https://github.com/mrfoto\r\n[@karreiro]: https://github.com/karreiro\r\n[@dreyks]: https://github.com/dreyks\r\n[@hmadison]: https://github.com/hmadison\r\n[@miquella]: https://github.com/miquella\r\n[@jhansche]: https://github.com/jhansche\r\n[@cornelius]: https://github.com/cornelius\r\n[@eagletmt]: https://github.com/eagletmt\r\n[@apiology]: https://github.com/apiology\r\n[@alexdowad]: https://github.com/alexdowad\r\n[@minustehbare]: https://github.com/minustehbare\r\n[@tansaku]: https://github.com/tansaku\r\n[@ptrippett]: https://github.com/ptrippett\r\n[@br3nda]: https://github.com/br3nda\r\n"}}