アビシニアンモードでLINTツールの誤検出と闘う

RuboCopなどのLINTツールは、コードに含まれる潜在的な問題を検出しますが、誤検出の問題が常につきまといます。例えば、こういうプログラムに問題があると言われると、かなり厳しい思いをします。

f:id:sideci:20170407160809p:plain

このRuboCopの警告は、Railsアプリケーションの配置されているディレクトリを返すRails.rootからパスを組み立てるときには、式展開などの文字列操作ではなくPathname#joinメソッドを使うことを推奨するものです。つまり、

path = "#{Rails.root}/tmp/icons/#{user.id}.png"

ではなく、

path = Rails.root.join('tmp', 'icons', "#{user.id}.png")

と書いた方が良いという警告です。

(more…)

1 Comment

隠れたコーディングスタイルを .rubocop.yml に抽出するツール、Gryをリリースしました!

.rubocop.ymlの自動生成ツール Gry をリリースしましたのでお知らせいたします。

github.com

Gry とは?

Gry は RuboCop の設定ファイル(.rubocop.yml)の自動生成ツールです。
Gry を使用することで、プロジェクトのソースコードを解析し、そのプロジェクトに最適な.rubocop.ymlを自動で生成することが可能です。

これにより、従来手作業で行っていた.rubocop.ymlの作成作業にかかる時間を大幅に削減することが可能となります。
そして、RuboCopをよりプロジェクトに沿った形で使用することが可能となります。

(more…)

0 Comments

RuboCopの自動修正がSideCI上から行えるようになりました。

こんにちは。最近ドラゴンクエストビルダーズに時間泥棒されている@vexus2です。

今週のSideCIのアップデート情報です。

RuboCopの自動修正をSideCIから行えるようになりました。

alt="auto correct image"

RuboCopには --auto-correct オプションを付加すると修正可能なコードを自動修正してくれる機能があるんですが、それらをSideCI+GitHubのPullRequestのみで行えるようになりました。

(more…)

0 Comments

RuboCopを任意のバージョンで実行可能になりました

こんにちは。東京では初雪が降ってましたね。とても寒い日々ですがいかがお過ごしでしょうか。@vexus2です。

今週のSideCIのアップデート情報です。

RuboCopを任意のバージョンで実行可能になりました。

RuboCopは開発スピードがそれなりに早く、また、後方互換を保たずにカジュアルに設定項目ごと無くなって実行時にエラーになったりすることがあるライブラリです。
基本的にSideCIでは常にRuboCopの最新バージョンを提供してきましたが、意図的に特定のバージョンで固定した設定を使っていたりなど、様々な事情のユーザ様のユースケースに対応できるべく、任意のRuboCopバージョンでの実行が行えるように対応しました。

(more…)

0 Comments

SideCIの自動コードレビューに新たなツールが仲間入りしました。PHP_CodeSniffer, RuboCop, JSHint, CoffeeLint

SideCIで8つのツールが新たにご利用出来るようになりました。
現在のところ全て無料で無制限にお使い頂けますので、ぜひお試し下さい。

主に以下の3つが大きなトピックです。

  1. PHP言語の自動コードレビューに対応しました
  2. JavaScript, CoffeeScriptの自動コードレビューに対応しました
  3. RuboCopに対応しました。

alt="setting screen"
画面イメージ

(more…)

0 Comments

RuboCopをRailsオプションやLintオプションで使ってみよう

RuboCopというRuby向けの静的解析ツールについてご紹介致します。
SideCIでも昨日からRuboCopによる自動コードレビュー機能がお使いになれるようになりました。ぜひこの機会にRuboCopをお試し頂ければと思います。

RuboCopについて、RuboCopのRails向けオプション、バグに繋がりやすい内容だけを検出するlintオプションなど、規約以外の部分で役に立つオプションについても紹介しておりますので、ぜひご一読下さい!

(more…)

0 Comments