pockestrap

Web Programmer's memo

RuboCop

rubocop-jp/issues を作った。

vim-jp/issues のパクリです。 https://t.co/V6MpMfF3q7 前々から作りたいと思っていた rubocop-jp を作りました。英語でバグ報告とかつらいよーという人のためのアレです。ついでにそのへんの興味ありそうな人を雑にorgに招待しました— Pocke(ぽっけ) SW-13…

RuboCopのCop数を数える方法

$ rubocop --show-cops | head # Available cops (374) + config for /tmp/tmp.osgxetgoX3: # Department 'Bundler' (3): Bundler/DuplicatedGem: Description: Checks for duplicate gem entries in Gemfile. Enabled: true Include: - "**/Gemfile" - "**/…

RuboCop 0.51.0 のCHANGELOGを読む

RuboCop のバージョン 0.51.0 がリリースされました。 https://github.com/bbatsov/rubocop/releases/tag/v0.51.0 CHANGELOG から変更を見ていこうと思います。 破壊的変更 古い Ruby のサポート終了 https://github.com/bbatsov/rubocop/pull/4789 https://…

RuboCop 0.50.0 のCHANGELOGを読む

RuboCop のバージョン 0.50.0 がリリースされました。 https://github.com/bbatsov/rubocop/releases/tag/v0.50.0 CHANGELOG から変更を見ていこうと思います。 破壊的変更 Naming Department Issue: https://github.com/bbatsov/rubocop/issues/4521 PR: ht…

RubyKaigi 2017 で Lint について話します。

RubyKaigi 2017 で Lint について話します。 rubykaigi.org Lint とは Lint というのは、バグになりうるコードを自動で検出プログラムです。 なにを話すのか Ruby のための Lint を、どう実装するかについて話します。 Lint が検出するコードの例を一つ紹介…

RuboCop-RSpec 1.16.0 の CHANGELOG を読む

RuboCop-RSpec のバージョン 1.16.0 がリリースされました。 https://github.com/backus/rubocop-rspec/releases/tag/v1.16.0 RuboCop-RSpec とは、RSpec 特有の問題を RuboCop で検知するためのプラグインです。 CHANGELOG から、新規追加の Cop を見ていこ…

RuboCop の Collaborator になりました

こんにちは。 RuboCop の Collaborator になりました。Collaborator とは、GitHub でマージボタンを押せる人です。 Promote @pocke to a Core RuboCop developer · bbatsov/rubocop@468835f · GitHub RuboCop とは Ruby のスタイルを検査/修正したり、バグに…

RuboCop の Lint/UnreachableCode を直した

なにそれ RuboCop には Lint/UnreachableCode という便利 Cop がある。 その名の通り、unreachable な code を検出してくれる。 def foo do_something return do_anything # このコードは絶対に実行されない! end 上記のような絶対に実行されないコードをつ…

RuboCop で `#each` がブロックの戻り値を使わないことを思い出せるようにした

問題 以下のようなコードは、恐らくバグになります。 json = users.each do |user| id = user.id full_name = user.full_name { id: id, full_name: full_name, } end render json: json これはidとfull_nameをもったオブジェクトの配列をjsonでrenderするよ…

RuboCop 0.49.0 のCHANGELOGを読む

RuboCop のバージョン 0.49.0 がリリースされました。 https://github.com/bbatsov/rubocop/releases/tag/v0.49.0 CHANGELOG から変更を見ていこうと思います。 破壊的変更 Layout Department PR: https://github.com/bbatsov/rubocop/pull/4278 今回のリリ…

Gem として提供されているコマンドのベンチマーク

github.com 先程、RuboCop にパフォーマンス改善の Pull-Request を投げました。3%ぐらい速くなります。 この Pull-Request の効果を検証する際に用いたベンチマークの方法が、わりと面白くて便利(自画自賛)だったので、紹介します。 そもそもの問題 Gem で…

Mry を使って RuboCop のアップデートを楽しよう

TL;DR GitHub - pocke/mry: Mry Migrates .Rubocop.Yml Mry を使うと、コマンド一発で非互換にやられた.rubocop.ymlをアップデート出来る 前置き RuboCop のバージョンをご存知でしょうか? 現在(2017/04/24)の RuboCop の最新バージョンは、0.48.1 です。バ…

Battle Conference U30 に参加、登壇してきました

battleconference-u30.connpass.com bcu30.jp 登壇内容 「自分の足を撃たない技術」というタイトルで登壇しました。 資料 qiita.com 内容 実は、私がいいたいことの8割ぐらいは id:sinsoku さんのこのツイートに集約されていると思っています。 各社がレビュ…

Shibart 作成の軌跡

あけましておめでとうございます。 id:Pocke です。 今年の目標は、人の顔を覚えることです。人のことを服の色で覚えてしまうので、この季節はコートを脱ぎ着すると人の判別ができなくなってしまうのを今年こそは直そうと考えています。 昨年末、Shibartとい…

Performance/RegexpMatch Cop の概要と実装

こんにちは。id:Pocke です。 先日、RuboCop に Performance/RegexpMatch という Cop が追加されました。 Add new Performance/RegexpMatch cop by pocke · Pull Request #3824 · bbatsov/rubocop このCopは、Ruby 2.4 で追加された match? メソッドに対応す…