TechBlogSideCIのエンジニアによる技術ブログです。12月に入り寒さも本格化してきましたが、いかがお過ごしでしょうか?さて、先日RuboCopのバージョン(0.46.0)がリリースされました。多数の機能追加やバグ修正が含まれています。Requestも4個含まれています。今日はそのCHANGELOGから、気になる新機能を見ていきましょう。新規Cop追加Copとは、RuboCopにおいてひとつのルールを指す言葉です。「インデントが正しいかチェックする」「非推奨メソッドを使っていないかチェックする」などが1つのCopの単位になります。この章では、0.46.0で新たに追加されたCopをひとつずつ紹介します。このバージョンで新設された区分です。Gemfileなどbundler関連のファイルに対する検査を行うCopです。このCopは、Gemfile内の重複したgemを検出します。'rubocop'上記のコードでは、rubocopが重複して指定されていますが、このCopではそれを検出することができます。'rubocop'endまた、上記のように複数のグループで同じGemが存在している場合にも警告を出します。上記のようなコードは次のように書き換えることが可能です。'rubocop'endGemfileが肥大化してくる巨大なプロジェクトでは、このCopが役に立つかも知れません。http://rubocop.readthedocs.io/en/latest/cops_style/#styleemptymethod解説このCopは、内容が空のメソッドを書く場合のスタイルを検査します。内容が空のメソッドを記述する際、以下のような2通りの書き方が考えられます。endこのCopは、デフォルトでは下の1行で書くスタイルの書き方を推奨し、上の様な複数行になる書き方にwarningを出します。コーディングスタイルが上の複数行で書くような書き方の場合、.rubocop.ymlに以下の記述を追加することで、そちらの書き方を推奨することが出来ます。expandedまた、このCopはAuto-Correctに対応しているため、異なったスタイルのコードを自動的に修正することが可能です。enumの機能が導入されました。30}endenumはModelで上記のように定義します。30}のようにHashで指定する方法があります。この内Hashで指定する方法はArrayでの指定と違い、新たな項目をenumに追加しても値がずれることがなくて便利なのですが、気をつけないと次のように値が重複してしまう可能性があります。10}endこのCopは、このような重複したenumの値を検出します。http://rubocop.readthedocs.io/en/latest/cops_bundler/#bundlerorderedgems解説このCopは、Gemfile内でgemがアルファベット順に並んでいるかを検査します。'twitter'上記のようなGemfileはgemがアルファベット順に並んでいると認識されます。omniauth-twitterがomniauth-facebookより前にある状態では、warningが発生します。上記の例からもわかる通り空行を挟んだ場合は段落が分けて考えられるため、カテゴリ毎にGemを分けた上でアルファベット順に並べることが可能です。このCopは現状Auto-Correctをサポートしていないため、アルファベット順に並べ直すためには手動で行う必要があります。Requestを作成したため、次期リリースでは自動で並び替えが出来るようになると思われます。0.46.0ではこの他にも多くの機能追加、バグ修正が行われています。詳しい変更を知りたい方は、リリースノートをご覧ください。0.46.0を利用することが可能です。CHANGELOGを読むTweet関連記事2016-11-16MItamaeを開発環境構築に使ってみた話こんにちは。CHANGELOGを読むこんにちは、RuboCop大好き!Pockeです。読むこんにちは、RuboCop大好き!Pockeです。RSSはてなブログで読者になるスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。