### New features * `Rails/TimeZone` emits acceptable methods on a violation when `EnforcedStyle` is `:acceptable`. ([@l8nite][]) * Recognize rackup file (config.ru) out of the box. ([@carhartl][]) * [#1788](https://github.com/bbatsov/rubocop/pull/1788): New cop `ModuleLength` checks for overly long module definitions. ([@sdeframond][]) * New cop `Performance/Count` to convert `Enumerable#select...size`, `Enumerable#reject...size`, `Enumerable#select...count`, `Enumerable#reject...count` `Enumerable#select...length`, and `Enumerable#reject...length` to `Enumerable#count`. ([@rrosenblum][]) * `CommentAnnotation` cop does auto-correction. ([@dylandavidson][]) * New cop `Style/TrailingUnderscoreVariable` to remove trailing underscore variables from mass assignment. ([@rrosenblum][]) * [#1136](https://github.com/bbatsov/rubocop/issues/1136): New cop `Performance/ParallelAssignment` to avoid usages of unnessary parallel assignment. ([@rrosenblum][]) * [#1278](https://github.com/bbatsov/rubocop/issues/1278): `DefEndAlignment` and `EndAlignment` cops do auto-correction. ([@lumeet][]) * `IndentationWidth` cop follows the `AlignWith` option of the `DefEndAlignment` cop. ([@lumeet][]) * [#1837](https://github.com/bbatsov/rubocop/issues/1837): New cop `EachWithObjectArgument` checks that `each_with_object` isn't called with an immutable object as argument. ([@jonas054][]) * `ArrayJoin` cop does auto-correction. ([@tmr08c][]) ### Bugs fixed * [#1816](https://github.com/bbatsov/rubocop/issues/1816): Fix bug in `Sample` when calling `#shuffle` with something other than an element selector. ([@rrosenblum][]) * [#1768](https://github.com/bbatsov/rubocop/pull/1768): `DefEndAlignment` recognizes preceding `private_class_method` or `public_class_method` before `def`. ([@til][]) * [#1820](https://github.com/bbatsov/rubocop/issues/1820): Correct the logic in `AlignHash` for when to ignore a key because it's not on its own line. ([@jonas054][]) * [#1829](https://github.com/bbatsov/rubocop/pull/1829): Fix bug in `Sample` and `FlatMap` that would cause them to report having been auto-corrected when they were not. ([@rrosenblum][]) * [#1832](https://github.com/bbatsov/rubocop/pull/1832): Fix bug in `UnusedMethodArgument` that would cause them to report having been auto-corrected when they were not. ([@jonas054][]) * [#1834](https://github.com/bbatsov/rubocop/issues/1834): Support only boolean values for `AutoCorrect` configuration parameter, and remove warning for unknown parameter. ([@jonas054][]) * [#1843](https://github.com/bbatsov/rubocop/issues/1843): Fix crash in `TrailingBlankLines` when a file ends with a block comment without final newline. ([@jonas054][]) * [#1849](https://github.com/bbatsov/rubocop/issues/1849): Fix bug where you can not have nested arrays in the Rake task configuration. ([@rrosenblum][]) * Fix bug in `MultilineTernaryOperator` where it will not register an offense when only the false branch is on a separate line. ([@rrosenblum][]) * Fix crash in `MultilineBlockLayout` when using new lambda literal syntax without parentheses. ([@hbd225][]) * [#1859](https://github.com/bbatsov/rubocop/pull/1859): Fix bugs in `IfUnlessModifier` concerning comments and empty lines. ([@jonas054][]) * Fix handling of trailing comma in `SpaceAroundBlockParameters` and `SpaceAfterComma`. ([@lumeet][]) [@bbatsov]: https://github.com/bbatsov [@jonas054]: https://github.com/jonas054 [@yujinakayama]: https://github.com/yujinakayama [@dblock]: https://github.com/dblock [@nevir]: https://github.com/nevir [@daviddavis]: https://github.com/daviddavis [@sds]: https://github.com/sds [@fancyremarker]: https://github.com/fancyremarker [@sinisterchipmunk]: https://github.com/sinisterchipmunk [@vonTronje]: https://github.com/vonTronje [@agrimm]: https://github.com/agrimm [@pmenglund]: https://github.com/pmenglund [@chulkilee]: https://github.com/chulkilee [@codez]: https://github.com/codez [@emou]: https://github.com/emou [@skanev]: http://github.com/skanev [@claco]: http://github.com/claco [@rifraf]: http://github.com/rifraf [@scottmatthewman]: https://github.com/scottmatthewman [@ma2gedev]: http://github.com/ma2gedev [@jeremyolliver]: https://github.com/jeremyolliver [@hannestyden]: https://github.com/hannestyden [@geniou]: https://github.com/geniou [@jkogara]: https://github.com/jkogara [@tmorris-fiksu]: https://github.com/tmorris-fiksu [@mockdeep]: https://github.com/mockdeep [@hiroponz]: https://github.com/hiroponz [@tamird]: https://github.com/tamird [@fshowalter]: https://github.com/fshowalter [@cschramm]: https://github.com/cschramm [@bquorning]: https://github.com/bquorning [@bcobb]: https://github.com/bcobb [@irrationalfab]: https://github.com/irrationalfab [@tommeier]: https://github.com/tommeier [@sfeldon]: https://github.com/sfeldon [@biinari]: https://github.com/biinari [@barunio]: https://github.com/barunio [@molawson]: https://github.com/molawson [@wndhydrnt]: https://github.com/wndhydrnt [@ggilder]: https://github.com/ggilder [@salbertson]: https://github.com/salbertson [@camilleldn]: https://github.com/camilleldn [@mcls]: https://github.com/mcls [@yous]: https://github.com/yous [@vrthra]: https://github.com/vrthra [@SkuliOskarsson]: https://github.com/SkuliOskarsson [@jspanjers]: https://github.com/jspanjers [@sch1zo]: https://github.com/sch1zo [@smangelsdorf]: https://github.com/smangelsdorf [@mvz]: https://github.com/mvz [@jfelchner]: https://github.com/jfelchner [@janraasch]: https://github.com/janraasch [@jcarbo]: https://github.com/jcarbo [@oneamtu]: https://github.com/oneamtu [@toy]: https://github.com/toy [@Koronen]: https://github.com/Koronen [@blainesch]: https://github.com/blainesch [@marxarelli]: https://github.com/marxarelli [@katieschilling]: https://github.com/katieschilling [@kakutani]: https://github.com/kakutani [@rrosenblum]: https://github.com/rrosenblum [@mattjmcnaughton]: https://github.com/mattjmcnaughton [@huerlisi]: https://github.com/huerlisi [@volkert]: https://github.com/volkert [@lumeet]: https://github.com/lumeet [@mmozuras]: https://github.com/mmozuras [@d4rk5eed]: https://github.com/d4rk5eed [@cshaffer]: https://github.com/cshaffer [@eitoball]: https://github.com/eitoball [@iainbeeston]: https://github.com/iainbeeston [@pimterry]: https://github.com/pimterry [@palkan]: https://github.com/palkan [@jdoconnor]: https://github.com/jdoconnor [@meganemura]: https://github.com/meganemura [@zvkemp]: https://github.com/zvkemp [@vassilevsky]: https://github.com/vassilevsky [@gerry3]: https://github.com/gerry3 [@ypresto]: https://github.com/ypresto [@clowder]: https://github.com/clowder [@mudge]: https://github.com/mudge [@mzp]: https://github.com/mzp [@bankair]: https://github.com/bankair [@crimsonknave]: https://github.com/crimsonknave [@renuo]: https://github.com/renuo [@sdeframond]: https://github.com/sdeframond [@til]: https://github.com/til [@carhartl]: https://github.com/carhartl [@dylandavidson]: https://github.com/dylandavidson [@tmr08c]: https://github.com/tmr08c [@hbd225]: https://github.com/hbd225 [@l8nite]: https://github.com/l8nite