タグ

ブックマーク / koic.hatenablog.com (9)

  • RuboCopにLSPを標準搭載した - koicの日記

    タイトルのとおり。RuboCop 1.53 で LSP (言語サーバー) を標準搭載しました。 最初に3行まとめを書いておきます。 RuboCop を使っているけれど LSP を使っていない場合は、高速なリアルタイム性で開発体験が変わると思います。速い! VS Code ユーザーを使っている方は、後述する vscode-rubocop という VS Code 拡張をインストールすれば OK です。 Emacs や Vi などのユーザーは、LSP クライアントの設定で rubocop --lsp を起動するように LSP 設定してください (VS Code では不要) 。 公式の使い方としては以下のドキュメントを更新していくことになるものの、実装者が自分なのでこちらに軽く書き記します。 docs.rubocop.org rubocop --lsp コマンドは直接ユーザーが手動実行するものでは

    RuboCopにLSPを標準搭載した - koicの日記
  • Rails 6.1で生成コードをRuboCop適用済みにする - koicの日記

    Rails 7.2以降を利用されている場合は以下の記事の方を参照してください。 koic.hatenablog.com Rails 6.1 がリリースされたので、y-yagi さんによる待望のパッチが使えるようになった。 PR にあるように使い方はシンプルで、Rails 6.1 での config/environments/development.rb に以下の設定を足す。 config.generators.after_generate do |files| parsable_files = files.filter { |file| file.end_with?('.rb') } unless parsable_files.empty? system("bundle exec rubocop -A --fail-level=E #{parsable_files.shelljoin}",

    Rails 6.1で生成コードをRuboCop適用済みにする - koicの日記
  • RuboCop 1.5で導入された`SuggestExtensions`パラメータ - koicの日記

    RuboCop 1.5で導入されたSuggestExtensionsパラメータについて記しておきます。 導入されたパッチは以下です。 github.com たとえば Bundler を使って RSpec を依存指定している一方で、RuboCop RSpec を使っていない場合は、以下のように RSpec に対応した拡張 RuboCop が存在することを rubocop コマンド実行のメッセージでサジェスチョンします。不必要な場合はメッセージ中に含まれている方法でオプトアウトできます。 % bundle exec rubocop --parallel (snip) Tip: Based on detected gems, the following RuboCop extension libraries might be helpful: * rubocop-rspec (http://gi

    RuboCop 1.5で導入された`SuggestExtensions`パラメータ - koicの日記
  • RuboCop 1.0 がリリースされた - koicの日記

    RuboCop 1.0 がリリースされた。 github.com 自分が最初にリリースを行った 0.93.1 が RuboCop 1.0 より前の最後のリリースになったというのも感慨深いものがあるけれど、さておきついに 1.0 になった。 よい節目なので RuboCop 1.0 と周辺に関するエントリを書いておこうと思う。 0.93.1 までアップグレードしている人への主な変更 ここまでアップグレードしている人は、1.0 に向けたマイルストーンを達成したひととおりの機能を手に入れています。0.93.1 から 1.0 での主な変更点は以下です。 デフォルトで pending だったコアの Cop がすべてデフォルトで有効になった。DidabledByDefault: true などしているのでなければ、これが一番ユーザーインパクトのある変更だと思う。なお、今後 1 系で追加される Cop は

    RuboCop 1.0 がリリースされた - koicの日記
  • Nokogiriが1.11.0からプリコンパイル済みで配布される - koicの日記

    Nokogiri が 1.11.0 からプリコンパイル済みで配布される (らしい) 。 このエントリを書いている時点での Nokogiri のプレリリースバージョンは 1.11.0.rc3 なので、大きな問題がなければ近日リリースの Nokogiri からという少し先取りの話になる。 おや?となったツイートは以下。 On a more serious note, we're REALLY close to shipping precompiled native gems.https://t.co/tKcuym2UqQ— mike dalessio (@flavorjones) 2020年10月8日 後述するイシューに詳しくは記載されていますが、Linux だけではなく macOS にも対応しているらしい。 早速手元の macOS で見てみることにする。 % time gem install

    Nokogiriが1.11.0からプリコンパイル済みで配布される - koicの日記
  • Thor x Rails 6.0での注意点 - koicの日記

    Rails アプリケーションを構築する際に、バッチ処理や便利タスクなどで Thor (現在の最新バージョンは 1.0.1) を使っている機会があると思うのですが、Rails 5.2 から Rails 6.0 で挙動が変わっていた点とその解決方法をシェアしておきます。 対象 Thor タスクのなかで options.except(:key) を使っているコードが対象です。 class Foo < Thor option ... def foo options.except(:key) # これ end end 言い換えると Thor で options.except を使いその引数がシンボルでなければ、この問題はありません。 現象 options のクラスである Thor::CoreExt::HashWithIndifferentAccess の except メソッドの挙動が変わっています

    Thor x Rails 6.0での注意点 - koicの日記
    teitei_tk
    teitei_tk 2020/07/30
  • パーフェクトRuby on Rails【増補改訂版】をレビュアー献本いただいた - koicの日記

    パーフェクトRuby on Rails【増補改訂版】をレビュアー献いただいた。出版おめでとうございます & 献ありがとうございました。 パーフェクト Ruby on Rails 【増補改訂版】 作者:すがわらまさのり,前島真一,橋立友宏,五十嵐邦明,後藤優一発売日: 2020/07/25メディア: 単行(ソフトカバー) 以前、Ginza.rb のおりに netwillnet さんから「パ Rails の改訂版を書くにあたってレビュアーお願いできますか?」と声をいただいて、執筆パート担当の igaiga555 さんからのパスでレビュアーに加わらせていただいていた。 全体については仕事の速い tatsuoSakurai さんが書いている書評を見ていただくとして、RuboCop に関わるパートで出版後の変化について記しておこうと思う。 編9章で rubocop -a を実行すると Sty

    パーフェクトRuby on Rails【増補改訂版】をレビュアー献本いただいた - koicの日記
  • rubocop -a と rubocop -A オプション - koicの日記

    RuboCop 0.87 がリリースされた。 github.com 今回の目玉は rubocop -a コマンドラインオプションへの非互換変更となる。 これまでは rubocop -a オプション (rubocop --auto-correct も同義) を使った場合に、自動修正を備えたすべての Cop が適用されたていた。そのため Safe でないと見なされる Cop の自動修正も適用されるというのがデフォルトの振る舞いだった。 今回のリリースからは rubocop -a は Safe とマークされている Cop のみが自動修正の対象となり、従来どおり自動修正を備えた Unsafe を含むすべての Cop を適用する場合は rubocop -A (rubocop --auto-correct-all) を実行することになる。つまり RuboCop 0.59 で導入された rubocop

    rubocop -a と rubocop -A オプション - koicの日記
  • Bundler 2.0.0.devを使ってみる - koicの日記

    Rails の master で Bundler 2 を許可するようになった ので、手元の Rails アプリケーションで Bundler 2 を使ってみることにした。 RubyGems にはまだ Bundler 2 は公開されていないため、ソースコードからインストールする必要があるので、その手順を記しておく (もっとクールなやり方あるかもだけど、他のアプローチは分からない) 。 bundler/bundler の master のソースコードにある version.rb のバージョンを 2.0.0.dev にする。Bundler の実装としてメジャーバージョンが2であれば、Bundler.feature_flag.bundler_2_mode? の値で true を返して Bundler 2 モードなるので、それを有効にするためとなる。 % git diff diff --git a/l

    Bundler 2.0.0.devを使ってみる - koicの日記
  • 1