並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 85件

新着順 人気順

rubocopの検索結果1 - 40 件 / 85件

  • Rails 8 adds Rubocop by default to new applications

    RuboCop is a static code analyzer also linter and code formatter for the Ruby programming language. It will enforce the guidelines outlined in the community Ruby Style Guide. It helps developers in ensuring adherence to coding style standards, identifying potential code flaws, and enhancing the overall quality of the codebase. In addition to identifying code problems, RuboCop also automatically co

      Rails 8 adds Rubocop by default to new applications
    • プロジェクト独自のコーディングルールを簡単に正規表現で定義できる `rubocop-grep` の活用 - ROUTE06 Tech Blog

      はじめに: 弊社のとあるEDI(電子商取引)関連のプロダクトでは、Ruby on Railsを利用してGraphQL APIを提供しています。 その開発活動の中で最近、コードの品質と整合性を維持するためのツールとして rubocop-grep を利用し始めました。 この記事ではその具体的な活用事例についてお話しします。 目次 rubocop-grepとは 最初のユースケースと、基本的な使い方の説明 複数のルールをディレクトリごとに設定するための工夫 ほかにどのようなユースケースがありそうか まとめ rubocop-grepとは rubocop-grep は、rubocop の拡張ツールです。 プロジェクト独自のコーディングルールを、正規表現を用いて簡単に定義することができます。 この手の問題は、今までもカスタムCopを書くことで解決することはできましたが、カスタムCopはASTの知識やRu

        プロジェクト独自のコーディングルールを簡単に正規表現で定義できる `rubocop-grep` の活用 - ROUTE06 Tech Blog
      • rubocop-daemon 裏話: OSS の苦悩

        「Omotesando.rb #95」で発表した LT スライドです。 https://omotesandorb.connpass.com/event/311351/

          rubocop-daemon 裏話: OSS の苦悩
        • Rails の Service クラスの運用を CustomCop で厳格にする - Timee Product Team Blog

          タイミーでバックエンドエンジニアをしている新谷 id:euglena1215 です。 今回は社内で決めたコーディングルールに強制力を持たせるために CustomCop を作った話を紹介します。 背景 タイミーの Rails アプリケーションには /app/services ディレクトリがあり、 Service クラスが存在しています。 これまで社内で Service クラスは、なるべく使わない方が好ましいものの、どんな時に使っていいかは特段明言されていない状況でした。 その結果かは分かりませんが、一部の機能では Service クラスを多用し Service クラスが Service クラスを呼んでいるなど複雑になっており、コードリーディングの負荷が高まっていました。 この現状に課題感を持った @rhiroe が以下のような問題提起を行いました。 この問題提起を受け、チーム横断の技術領域ご

            Rails の Service クラスの運用を CustomCop で厳格にする - Timee Product Team Blog
          • GemfileでのRubyバージョン指定を.ruby-versionから読む - koicの日記

            Gemfile での Ruby バージョンの指定を、値の直書きではなく .ruby-version からの読み込みに変更する設定です。 https://github.com/rubygems/rubygems/pull/6876 例えば、Rails アプリケーションなんかで Gemfile に .ruby-version と同じ 3.3.0 を指定しているようであれば、以下のように記述できます。 -ruby '3.3.0' +ruby file: '.ruby-version' asdf に類するものを使っているようであれば、ruby file: '.tool-versions' と記します。 https://github.com/rubygems/rubygems/pull/6898 この設定によって Ruby のアップデート時のバージョンの更新ポイントを減らすことができます。 なお、古

              GemfileでのRubyバージョン指定を.ruby-versionから読む - koicの日記
            • graphql-ruby 関連の CustomCop を作ってみる - やなぎにっき

              この記事は 🎅GMOペパボエンジニア Advent Calendar 2023 - Adventar 11日目の記事です🎅🎄 adventar.org 私が所属しているminneのプロダクトではGraphQLを採用しています。 Ruby on Rails で開発するにあたり、以下のGemを使用しています。 graphql-ruby GraphQL - Welcome rubocop-graphql ( graphql-ruby用の拡張cop ) GitHub - DmitryTsepelev/rubocop-graphql: Rubocop extension for enforcing graphql-ruby best practices 普段開発している中で rubocop-graphql にあるcopだけでなく、「こういうcopがあればいいな」と思うことがしばしばあるので作っ

                graphql-ruby 関連の CustomCop を作ってみる - やなぎにっき
              • LSP ルーターを作った - tmtms のメモ

                最近は Emacs の LSP クライアント機能である Eglot を使って Ruby を書いたり読んだりしてる。 ruby-mode では LSP サーバーはデフォルトで Solargraph が使われてる。 半年くらい前に rubocop に LSP サーバー機能が搭載されたらしいんで使ってみた。 (add-to-list 'eglot-server-programs '(ruby-mode . ("rubocop" "--lsp"))) rubocop の機能であるコードのチェックはちゃんと使えたんだけど、Solargraph で使えてたコードジャンプとかが使えなくなった。まあそれはそう。 Eglot はモードごとに LSP サーバーを指定することはできるけど、同じモードに複数の LSP サーバーを指定することはできなそう。Emacs Lisp はよくわからないんでちゃんと調べてない

                  LSP ルーターを作った - tmtms のメモ
                • RailsアプリのCI高速化

                  参加しているプロジェクトで、RailsアプリのCIの高速化を行った。 まだ進行中の部分も幾つかあるが、結果から言うと、元々8分前後だったテストが3分半程度に短縮された。行った作業を幾つかの観点に分け、どのように高速化を行ったか、どの程度高速化されたか等を記述する。 プロセス数とマシン性能の調整 元々は2コア1プロセス4マシンで8分程度掛かっていたが、8コア8プロセス1マシンに変更することで5分程度に短縮された。 このプロジェクトではCIにGitHub Actionsを利用している。GitHub Actionsではデフォルトで2コアのマシンが利用されるが、Large runnerを利用して8コアに変更した。費用は変わらない。 また同時に、8プロセスで並列実行するためにparallel_testsを導入した。このプロジェクトではMySQLとElasticsearchを利用しており、またファイル

                  • reviewdog x Custom FormatterでRuboCopの自動修正を提案させるようにしました - inSmartBank

                    reviewdog/action-rubocopというOSSプロジェクトをご存知でしょうか。Rubyの静的解析ツールであるRuboCopをGitHub Actionsで実行し、指摘箇所にコメントを付けてくれる便利なCustom Actionです。 本記事では筆者がこのOSSを改良して実装したSuggestion featureという便利機能とその実装についてご紹介します。RuboCopをお使いの方、より良いRuboCop生活をお求めの方、静的解析が好きな方向けの記事となります。 なお、この記事は2023-06-21に行われたGotanda.rb#53@ギフティで"RuboCop Custom Formatter for Reviewdog Diagnostic Format"と題して筆者が行った発表をもとにしています。 前提となる知識 初めにreviewdog/action-rubocop

                      reviewdog x Custom FormatterでRuboCopの自動修正を提案させるようにしました - inSmartBank
                    • RuboCopのLSPを使ったらとても便利だった - 出る杭は打たれない

                      フィヨルドブートキャンプのDiscordにRuboCopでLSPが標準搭載されたお知らせがありました。 koic.hatenablog.com そもそもLSPが何かも分かってなく・・・気になったため早速インストールして使ってみました。 LSPとは qiita.com language serverとは、IDEが必要とするプログラムのプロジェクト ソースを解析して情報を提供する機能を、サービスとして実現するものです。language serverがサポートされたIDEでは、型やメンバーの自動補完、変数やメンバーの定義参照、変数やメンバーの利用箇所の検索、コードの自動フォーマット、コードのエラー分析や修正案の提示といった、さまざまな機能を実現できます。 docs.rubocop.org Offense detection and autocorrection are performed in

                        RuboCopのLSPを使ったらとても便利だった - 出る杭は打たれない
                      • 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の日記
                        • Rubyのバージョン変更前に依存ライブラリのソースコードを静的解析

                          やっておくと安心。 手順 まず利用しているライブラリのソースコードを、適当な場所にコピー。 cp -r vendor/bundle/gems tmp/gems 各ライブラリに .rubocop.yml が含まれているとその設定が利用されてしまうので、削除する。前述のコピーはこのために必要。 rm tmp/gems/**/.rubocop.yml 適当なオプションを付け、Rubyのバージョン変更に関係がありそうなCopを指定しながら、RuboCopで静的解析する。 bundle exec rubocop \ --ignore-disable-comments \ --ignore-parent-exclusion \ --ignore-unrecognized-cops \ --only Lint/DeprecatedClassMethods,Lint/DeprecatedConstants

                          • RuboCop RSpecからRuboCop CapybaraとRuboCop factory_botが切り出されたけど結局どうすればいいの? - ANDPAD Tech Blog

                            こんにちは、 ydah です。最近はというと、料理への情熱が再燃してきました。一時期は作った料理を全て写真に残していたりとしていたのですが、いつの間にか記録を何も残さなくなっていました。何かしら記録を残すことで、前回よりも味も見た目も良くしようと思えるので、記録を残していくようにしたいと思います。やっていくぞ〜!! トマトとタコのパスタの近影 はじめに 5/11-13 に長野県松本市 まつもと市民芸術館 で開催された RubyKaigi 2023 の Lightning Talks で、 RuboCop RSpec チーム*1と RuboCop RSpec から、 RuboCop Capybara と RuboCop factory_bot を gem に切り出した話をしました。 rubykaigi.org 当日の発表スライドは以下です。 この記事では RuboCop RSpec を現在使

                              RuboCop RSpecからRuboCop CapybaraとRuboCop factory_botが切り出されたけど結局どうすればいいの? - ANDPAD Tech Blog
                            • 正規表現でかんたんにCopを書けるRuboCop拡張 rubocop-grep をリリースしました - pockestrap

                              こんにちは。正規表現でかんたんにCopを書けるRuboCop拡張を作ってみたので紹介します。 github.com 使い方 まず、ほかのRuboCop拡張と同様にgemをインストールし、.rubocop.ymlのrequireにこのgemを指定してください。 この拡張は設定をしないと何も動きません。次のように.rubocop.ymlに設定をします。 Grep/Grep: Rules: # シンプルな例。正規表現にマッチした場合に、このCopが警告をします。 - Pattern: '\bENV\b' Message: Do not refer ENV directly. # パターンはArrayにして複数の正規表現を含めることができます。 - Pattern: - 'binding\.irb' - 'binding\.pry' Message: 'Debug code remains' #

                                正規表現でかんたんにCopを書けるRuboCop拡張 rubocop-grep をリリースしました - pockestrap
                              • It's official: the Standard Ruby VS Code extension

                                  It's official: the Standard Ruby VS Code extension
                                • rubocop + Solargraph + VSCode設定 - 技術メモ

                                  100万回くらいrubocopとVSCodeの設定で良い感じにできなくて苦虫を噛んできたので重い腰を上げてガッとやった結果。 VSCode側はこれでOK。コツはSolargraphに全てお任せする感じ。ここで巷に落ちているコードのようにrubocopをformatやlintに使ったりするとSolargraphと競合してrubocopコマンドをコンソールで実行したらエラーにならないのにVSCodeではエラーが消えないみたいな問題が解消される。

                                    rubocop + Solargraph + VSCode設定 - 技術メモ
                                  • “社内つらみトップランカー”を210プルリクで倒しきった話 技術的負債は“継続して返却”すればいつかは終わる

                                    「初学者から上級者までが楽しめるWeb系の技術カンファレンス」をコアコンセプトに掲げる「Kaigi on Rails」。ここで登壇したのは、株式会社アンドパッドの川原万季氏。大きな技術的負債を解消するためにやったこと、心がけたことを発表しました。 登壇者の自己紹介 川原万季氏:「歴史あるプロジェクトのとある技術的負債を隙間プロジェクトの210PullRequestsで倒しきった話」というタイトルでお話をさせていただきます。よろしくお願いします。 先ほど「Twitter」に資料を上げたので、手元でご覧になりたい方は、そちらをご覧ください。 自己紹介をします。「makicamel」という名前で活動をしています。Rubyとビールとお酒が大好きで、好きなVRゲームは「Beat Saber」です。株式会社アンドパッドというところで働いていて、今日はこの話をします。 最後までやりきるのが難しい“大きな

                                      “社内つらみトップランカー”を210プルリクで倒しきった話 技術的負債は“継続して返却”すればいつかは終わる
                                    • RuboCop Under a Microscope

                                      Lint Night #1 https://lintnight.connpass.com/event/263931/

                                        RuboCop Under a Microscope
                                      • 古くなってしまったrubocopを最新まで一気に上げたい人へ贈るバージョンアップの向き合い方 - Qiita

                                        rubocopは定期的に新バージョンがリリースされていますが、最新もしくはそれに近いバージョンにきっちり保てているプロジェクトは案外少ないのではないでしょうか。 2023年の3月末でRuby2.7のサポートが終了するのですが、3.0移行のrubyでrubocopを動かすにはrubocopのバージョンを1.0.0以上にあげる必要があります。 上記の都合から慌ててrubocopのバージョンを上げる必要になった方もいると思います。 しかし、一気に全部やろうとすると、チーム開発であれば他のメンバーの開発とコンフリクトしますし、長時間対応している間に新しいバージョンが出て規則が追加されるので全部対応しきるのは難しいです。 この記事では、そんなrubocopで疲弊する未来が見えた読者の方へ愚直に向き合いすぎないrubocopのバージョンアップ方法を授けます。 とりあえずバージョンを上げる まず兎にも角

                                          古くなってしまったrubocopを最新まで一気に上げたい人へ贈るバージョンアップの向き合い方 - Qiita
                                        • rubocop-migration

                                          rubocop-migrationというGemをつくった。 ActiveRecordのmigrationでハマりがちな罠を回避したり、記法に一貫性を持たせるための、RuboCop向けのCopをまとめたライブラリである。例えば、テーブルへの読み書きをブロックしてしまうようなMigrationの書き方を検知し、それがもし別の方法で回避可能なものであれば違反とする、といったCopが含まれている。 背景としては、先週にstrong_migrationsの話を見かけ、RuboCopから使える形で提供されていると便利そうだと思い用意した。実際、ほとんどのCopはこのライブラリの内容を参考に実装している。 異なる点として、strong_migrationsだと検知させるためにアプリケーションのコードに変更が必要で、またデータベースへの接続も要求される。一方で、rubocop-migrationはこの辺を

                                          • カスタムCopでリファクタリング

                                            RuboCopのカスタムCopを書いてリファクタリングを行う話として、丁度良い事例があったので紹介します。 改善したいコード 仕事先のRailsアプリを眺めてみると、昔から慣習的に次のようなコードが書かれていることが分かりました。 module A extend ::ActiveSupport::Concern included do def foo end def bar end end end 本来は、特別な理由が無い限り次のように書かれるべきコードです。 module A def foo end def bar end end これは後から分かったことですが、このようなコードはファイル数で言うと数百件、メソッド定義数で言うと千件弱あるようでした。 用意したカスタムCop そこで、RuboCopのカスタムCopを書いて、このコードを自動修正することにしました。詳しい書き方についてはここ

                                            • Redis のパフォーマンス問題を RuboCop で検知 - ESM アジャイル事業部 開発者ブログ

                                              ソフトウェアエンジニアの 9sako6 です。 Ruby でソフトウェアを開発する際、パフォーマンス低下を引き起こすような良くない Redis のクエリが入り込まないよう RuboCop に見張ってもらうようにした話をします。 パフォーマンス低下の実例 私が開発に参加している Web サービスでは、Redis の不適切な使い方がボトルネックとなっていくつかのページのレイテンシーが高まっていました。 主に悪さをしていたのは KEYS クエリです。 KEYS クエリの平均処理時間は約 430 ms でした。これが Web ページのレイテンシーに含まれるのはかなり痛いです。 公式ドキュメント (https://redis.io/commands/keys/ )には、はっきりと本番環境での使用に注意するよう書いてあります。 Warning: consider KEYS as a command t

                                                Redis のパフォーマンス問題を RuboCop で検知 - ESM アジャイル事業部 開発者ブログ
                                              • RuboCop Rails (rubocop-rails) のリリース内容で Rails の情報をキャッチアップする - Qiita

                                                この記事は? Ruby の静的コード解析の定番 Gem の RuboCop。そのひとつひとつのルールのことを Cop と呼びます。そして、RuboCop Rails は Rails 向けのルールを RuboCop に追加するための Gem です。 ふと、RuboCop Rails で追加された Cop (ルール) を確認することで、Rails の知らない機能を知るいい機会になるのではと思いました。そこで、試しに 2022/09/09 (金) にリリースされたバージョン 2.16.0 の内容を見てみました そうすると、案の定知らないことばかりで非常に勉強になりました!そこで、実際にどんな学びがあったかこの記事で共有したいと思います 🙌 例: RuboCop Rails 2.16.0 追加された Cop #714: Add new Rails/FreezeTime cop. travel_t

                                                  RuboCop Rails (rubocop-rails) のリリース内容で Rails の情報をキャッチアップする - Qiita
                                                • RuboCopのServer Modeで高速lint/formatする with Docker

                                                  以前、rubocop-daemonをDocker環境で動かしてvscodeで高速にformat on saveする記事を書きました。 この記事ではサードパーティのライブラリのfork + 自前のクライアントスクリプトで実現していましたが、2022年6月末にリリースされたRuboCop 1.31より、同じことを実現するServer Modeが公式に実装されたようです。 というわけで、こちらでも同様にDocker環境 + vscodeで動かしてみました。 挙動や仕様を探ってみる まずはServer Modeを軽く動かしてみて挙動や仕様を確認してみます。 最低限rubocopが動くRuby on Dockerな開発環境を作り、そこで動作確認をしたあとにvscodeに組み込んでいく流れを想定しています。なお完成品のリポジトリがこちらです。sinatraのサンプルコードにrubocopを入れただけの

                                                    RuboCopのServer Modeで高速lint/formatする with Docker
                                                  • Rubyでrescueしたらグローバルなオブジェクトを破壊してたよって話 - ANDPAD Tech Blog

                                                    こんにちは、ydahです。 2021年の12月から株式会社アンドパッドでソフトウェアエンジニアとしてANDPAD検査の開発に携わっています。 昨年、息子が生まれてから夜更かしすることがなくなり、早朝に起きては軽くジョギングをしてから、OSSプログラミングにいそしむのが朝のルーティンになった今日このごろです。 さて本稿では、Rubyの例外処理を眺めていたらrescueがグローバルなオブジェクトを破壊するケースがあったんですよという話と、その対策について話したいと思います。 発生していたケースについて 突然ではありますが以下のコードをご覧ください。 この中にグローバルなオブジェクトを壊してしまうrescueがいます。 # 1 begin raise 'foo' rescue ArgumentError end # 2 begin raise 'foo' rescue => ArgumentEr

                                                      Rubyでrescueしたらグローバルなオブジェクトを破壊してたよって話 - ANDPAD Tech Blog
                                                    • Ruby用VSCode拡張: vscode-ruby-light

                                                      Ruby向けに、vscode-ruby-lightというVSCode拡張をつくっています。この拡張は、利用者に特にRubyのインストール要求することなく、シンタックスハイライトやカーソル操作など、VSCode標準の機能よりちょっと良い編集体験を提供しようという目的の拡張です。 最初は「メソッドやブロックをもう少し上手く選択できるようにしたい」というモチベーションで調べ始めたのですが、気付けば色々な機能を持つVSCode拡張が出来上がっていました。この記事では、幾つかの機能を紹介しながら、関連する話を書いていこうと思います。 Selection Range VSCodeにはExpand Selectionというコマンドがあり、選択範囲を拡大したり狭くしたりできます。このコマンドには、例えばWindowsであればデフォルトでShift + Alt + →にショートカットキーが割り当てられていま

                                                      • Automate RuboCop ToDo fix

                                                        Let me introduce rubocop-todo-corrector in this article. ToDo list based linting These days, many projects are using Lint tools to self-diagnose their code. e.g. ESLint for JavaScript rustfmt for Rust RuboCop for Ruby etc. RuboCop has the ability to detect existing offenses and automatically generate a file named .rubocop_todo.yml. This file acts as a to-do list, so we can gradually fix the offens

                                                          Automate RuboCop ToDo fix
                                                        • RuboCop Serves (Much) Faster

                                                          RuboCop’s motto has always been “The Ruby Linter that Serves and Protects”.1 Now, with the addition of a server mode in RuboCop 1.31 that motto is truer than ever! But first - a bit of background. Most people value speed and we’ve been on a decade-long journey in RuboCop to improve the performance: we’ve started with the Commissioner that triggered all cops during a single parser run for each file

                                                          • rubocop –format github

                                                            RuboCopをGitHub Actionsで使うならGitHubActionsFormatterが便利。 Workflow commands形式で出力してくれるので、GitHub Actionsが勝手にそれを拾ってPull Requestだと自動的に変更行に注釈を付けてくれるし、Checksの項目にもエラーと警告の一覧が出力される。 但し、この出力形式は主に機械が便利にキャプチャするためのものなので、人間がログを直接見るときには不都合なことが多い。例えばGitHub Actionsのログでは、Workflow commandsが使われたとき、色を付けたりしてくれるもののファイルパスや行番号を隠してしまう。問題のあったファイルパスを知りたいのに、これは問題だ。 rubocop –format progress –format github と複数指定し、人間用と機械用の両方を同時に出力させ

                                                            • RuboCopの解析バージョンサポートを見直した - koicの日記

                                                              RuboCop は Ruby の EOL バージョンについて、EOL の 1年後までサポートしています。 RuboCop の Ruby バージョンサポートといった時に「ランタイムバージョン」と「解析バージョン」の 2 つがあり、このエントリを書いている時点の最新 RuboCop 1.30 リリースまで、このふたつのバージョンが混同された状態でライフサイクルを共にしていました。 ここでそれぞれのバージョンをおさらい。 ランタイムバージョン ... RuboCop を実行する Ruby のバージョン。rubocop コマンドを実行する ruby 処理系のバージョンです。 解析バージョン ... RuboCop が解析する Ruby コードのバージョン。.rubocop.yml の TargetRubyVersion などで指定しているバージョンです。詳しくはこちらの過去記事をどうぞ。 例えば

                                                                RuboCopの解析バージョンサポートを見直した - koicの日記
                                                              • .rubocop_todo.ymlを解消するPull RequestをGitHub Actionsで自動生成する (前編)

                                                                .rubocop_todo.ymlを解消するPull RequestをGitHub Actionsで自動生成する (前編) 前編ではr7kamura/rubocop-challengeというCustom Actionの話をし、後編では再実装したr7kamura/rubocop-todo-correctorというCustom Actionの話をする。 ただ開発しているだけで、.rubocop_todo.ymlはそこ此処に積もる。たまに慈善活動的に解消してPull Requestを出したりもする。しかし人力でやっているとキリがない。この作業を自動化したい。こういうときに便利な、rubocop_challengerというGemがある。 便利なGemだが、設定しようとすると幾つかハマりどころがあり、導入が大変。そこで、簡単に導入できるようにr7kamura/rubocop-challengeという

                                                                • GitHub - DmitryTsepelev/rubocop-graphql: Rubocop extension for enforcing graphql-ruby best practices

                                                                  You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                                                    GitHub - DmitryTsepelev/rubocop-graphql: Rubocop extension for enforcing graphql-ruby best practices
                                                                  • Slimcop

                                                                    SlimテンプレートにRuboCopを適用するツール、Slimcopをつくった。 https://github.com/r7kamura/slimcop 使い方 基本的には、RuboCopと同じような機能をSlimテンプレート向けに提供するツールとなっている。SlimcopはGemとしてインストールでき、CLI向けに slimcop というコマンドを提供する。実行すると、Slimテンプレート中に埋め込まれたRubyのコードを検出し、それらに対してRuboCopで検査を実行する。また特徴的な機能として、auto-correctにも対応している。 $ slimcop --help Usage: slimcop [options] [file1, file2, ...] -a, --auto-correct Auto-correct offenses. -c, --config= Specify

                                                                      Slimcop
                                                                    • RuboCop 1.24.0 と Ruby 3.1 対応 - koicの日記

                                                                      RuboCop 1.24.0 がリリースされました。 github.com このリリースでは Ruby 3.1 のリリースに先行して、いくつかの Ruby 3.1 対応が入っています。 RuboCop の Ruby 3.1 対応の主だったものについて、ユーザー影響のありそうなものをピックアップして記しておきます。なお、現状で Ruby 3.1 サポートは experimental という位置づけです。 既存の Style/HashSyntax による hash value omission サポート 既存の Style/HashSyntax で、Ruby 3.1 の hash value omission をサポートするようにしています。 github.com bad / good は以下。 # EnforcedShorthandSyntax: always (default) # bad

                                                                        RuboCop 1.24.0 と Ruby 3.1 対応 - koicの日記
                                                                      • Hashの値の省略記法 - NaCl Blog

                                                                        NaClの前田です。 Ruby Advent Calendar 2021の20日目の記事です。昨日は@getty104さんでした。 今回はRuby 3.1にするっと入ってしまったHashの値の省略記法を紹介します。 導入の経緯 最初の提案のきっかけは、何かでES6のenhanced object literalsを知って、2015年にFeature #11105 ES6-like hash literalsというチケットを作成したことでした。 この提案は、 {x, y} が {x: x, y: y} とみなされるというもので、ES6と同じ記法です。 ただ、HashというよりSetに見えるという理由で却下されました。私自身、すごくほしいというよりは「実装できたから提案してみるか」という感じだったので、あまりがんばって説得しなかった気がします。 次の提案は2018年のFeature #1457

                                                                        • rubocopでの自動フォーマットを高速化する - $shibayu36->blog;

                                                                          VSCodeでrubocopを使って自動フォーマットをしているのだが、フォーマットが本当に遅くてめちゃ困っていたのが完全に解決して感動したので記事だけ共有。 dev.to formatに3秒くらいかかっててマジつらい...って感じだったのが1秒未満とかになったので本当に最高。 Before After

                                                                            rubocopでの自動フォーマットを高速化する - $shibayu36->blog;
                                                                          • RuboCop in 2021: Stable and Beyond

                                                                            RubyKaigi Takeout 2021 https://rubykaigi.org/2021-takeout

                                                                              RuboCop in 2021: Stable and Beyond
                                                                            • Rubocop でカスタムルールを作る - Money Forward Developers Blog

                                                                              こんにちは。 マネーフォワードでサーバーエンジニアをやっている江口です。 先日、開発中のプロダクトに Rubocop のカスタムルールを追加するチャレンジをしてみました。 その中で、手を動かしながら調べた内容をご紹介したいと思います。 Rubocop を全く知らない方でも読み物になるように、大まかな概要をおさらいしたうえで、本題に入ります。 Rubocop とは プログラマは誰しも、わかりやすさのため、あるいは効率化のために、自分なりのルールを守ってプログラムを書いています。わざわざ明示的に定めていないかもしれませんが、下記のようなルールはどのようなプログラムであっても満たすべきでしょう。 インデントを揃える 未使用変数を使わない if 文で2回以上同じ分岐をしない Rubocop は、Ruby プログラムがこのようなルールを満たしているかチェックするツールです。変更を加えるときに Rub

                                                                                Rubocop でカスタムルールを作る - Money Forward Developers Blog
                                                                              • RubocopでRubyコードのスタイルを強制せず、バグだけ検出 - スタディサプリ Product Team Blog

                                                                                今回はRubyのRubocopの使い方のお話です。 Summary RubocopのLayout, Lint, Metrics, Styleらのcopのほとんどすべてをdisable 潜在的バグ発見に役立つ系のSecurity, Lintのcopの一部をenable rubocop:disable や .rubocop_todo.yml だけゆるく禁止 というルールで運用で一定の成功を上げているという報告です。 このルールは、Quipper (Tokyo) 社内のRubyアプリケーションのうち、複数のチームにまたがってメンテナンスされている、いわゆる境界的な位置に属するものだけを対象にしています。新しく書かれるコードの多くは個別チームがownershipをもってメンテナンスをするため、そちらではチームの合意で自由にRubocopの設定を導入したりしなかったりしますが、特定チームに寵愛を受け

                                                                                  RubocopでRubyコードのスタイルを強制せず、バグだけ検出 - スタディサプリ Product Team Blog
                                                                                • 【エラー解消】rubocop returns empty output! please check configuration - Qiita

                                                                                  【エラー解消】rubocop returns empty output! please check configurationRubyRuboCopVSCode いつからか VScode で ruby-rubocop を使っているときに rubocop が動かなくなっていた。 command /Users/X/.rbenv/shims/rubocop returns empty output! please check configuration という Warning が出ていて、ぐぐると which rubocop した結果を Execute パスに貼ったら動いたという記事をよく見かけるが、自分の場合は直らなかった。 empty output ということなので実際にどのような値が帰っているのか sh /Users/X/.rbenv/shims/rubocop をしてみたら cannot

                                                                                    【エラー解消】rubocop returns empty output! please check configuration - Qiita