Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
RuboCopの人気記事 75件 - はてなブックマーク
[go: Go Back, main page]

並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 75件

新着順 人気順

RuboCopの検索結果1 - 40 件 / 75件

RuboCopに関するエントリは75件あります。 rubyrubocoprails などが関連タグです。 人気エントリには 『RailsアプリのCI高速化』などがあります。
  • RailsアプリのCI高速化

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

    • 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
      • FactoryBot the Right Way

        Kaigi on Rails ( https://kaigionrails.org )の登壇資料です。

          FactoryBot the Right Way
        • 365日欠かさずコミットを積む。なぜRuboCopコミッター伊藤浩一はOSSと向き合い続けるのか - Findy Engineer Lab

          プロジェクト内にあるRubyのコードが、コーディング規約を遵守しているかをチェックしてくれるRuboCop。Rubyでの開発においては広く使われている静的コード解析ツールであり、大部分のRubyエンジニアはRuboCopを利用したことがあるのではないでしょうか。 このツールのGitHubリポジトリを見ると、ある日本人のコミット数が最多であることがわかります。その方とは、伊藤浩一さん。Ruby関連のシステム開発に長年携わり、RuboCopのみならずActive Record Oracle enhanced adapterやParser、Fakerなど各種の有名ツールのコミッターを務めています。OSS関連の活動について、伊藤さんに振り返っていただきました。 永和システムマネジメントに転職し、初めて業務でRubyを書いた ――伊藤さんがRubyやRuby on Railsに触れた経緯からお聞きし

            365日欠かさずコミットを積む。なぜRuboCopコミッター伊藤浩一はOSSと向き合い続けるのか - Findy Engineer Lab
          • RuboCopコミッターが語る、"Write Code Every Day"を5年間実践するための工夫と得られたもの | Offers Magazine

            エンジニア界隈では「GitHubに草を生やす」という言葉があります。GitHubに草を生やすとはどういうことか?また草を生やし続けるコツ、草を生やし続けた先の世界観を自身のOSS開発のキャリアをふりかえりつつ紹介します。 私と”Write Code Every Day"との出会いは、とちぎテストの会議03の休憩時間でのこと。毎日コードを書くことを実践している話をt-wadaさんから聞いたのがきっかけだったと思います。 すごい人の真似をすればすごい人に近づけるだろう、という単純な発想から始めましたが、"Write Code Every Day"のオリジナルのルールは「真夜中にコードを書かない」など、私には厳しいものでした。 そのため、教科書的に進めようとしてスタートで挫折するより良かろうと、自分でできそうな形にカスタマイズで実践してきています。ルールは単純でGitHubに毎日草を生やすという

              RuboCopコミッターが語る、"Write Code Every Day"を5年間実践するための工夫と得られたもの | Offers Magazine
            • 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
              • “社内つらみトップランカー”を210プルリクで倒しきった話 技術的負債は“継続して返却”すればいつかは終わる | ログミーBusiness

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

                  “社内つらみトップランカー”を210プルリクで倒しきった話 技術的負債は“継続して返却”すればいつかは終わる | ログミーBusiness
                • 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の日記
                  • 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の日記
                    • たまってしまった .rubocop_todo.yml をGitHub Actionsで継続的かつ自動的に倒す方法 - STORES Product Blog

                      こんにちは。heyのCTOをやっている藤村です。 実はCTOになる前はSTORESのRailsのコードを改善する仕事をしていました。その頃に、たまってしまっている.rubocop_todo.ymlをなんとか手間をかけずに消化していきたいな〜と思い、少しづつ自動的に消化する仕組みを作りました。この記事ではその仕組みをご紹介します。 rubocop_todo.yml とは 既存のコードベースに対してRuboCopを適用すると大量の違反箇所が出てしまい使い物にならないという問題があります。それの解決策として、既存のコードで違反しているファイルを無視する設定を .rubocop_todo.yml というファイルに保存して .rubocop.yml で読み込み、既にある違反はいったん無視する、という方法が用意されています。 Configuration - RuboCop: The Ruby Lint

                        たまってしまった .rubocop_todo.yml をGitHub Actionsで継続的かつ自動的に倒す方法 - STORES Product Blog
                      • Standard Ruby 1.0: Set your code free with no config needed

                        Product Performance, Product Scaling, & Technical Assessments

                          Standard Ruby 1.0: Set your code free with no config needed
                        • 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の日記
                          • プロジェクト独自のコーディングルールを簡単に正規表現で定義できる `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-rails-omakaseとは何か? - koicの日記

                              Rails 7.2 で rails new した際に搭載される rubocop-rails-omakase について、それがどのようなもので、どのように使うことを期待されているかを書き記しておきます。 github.com rubocop-rails-omakase は DHH が著者となる Ruby コーディングスタイルルールです。 一次情報はあくまで作者である DHH 発信のものとしてもらいたいですが、私自身も rubocop-rails-omakase や Rails 7.2 の RuboCop 関連機能にコントリビューションしていることもあり、比較的オリジンに近いことを述べることができると思います。また RuboCop のコミッターをしているため、たぶん RuboCop の世界にちょっと詳しい方でしょう。 とはいえ、いろいろな考え方がある領域であることも承知しているため、ひとつの考

                                rubocop-rails-omakaseとは何か? - koicの日記
                              • Ruby用VSCode拡張: vscode-ruby-light

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

                                • RuboCop Under a Microscope

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

                                    RuboCop Under a Microscope
                                  • RuboCopのルールセットを大きく変えるときに気をつけること(Standard導入編) - inSmartBank

                                    こんにちは osyoyu です。RuboCop は好きですか? B/43の開発の現場でもRuboCopは活用しており、ご多分に漏れず .rubocop.yml がすくすくと育てられていました。コードの一貫性はよく保たれていた…… のですが、 # rubocop:disable がそれなりの頻度で出現したことからも、適用されているルールが最良のものかは少しばかり疑問があった、という具合です。 そこで、今回は “unconfigurable” をウリにしているRuboCopルールセットであるStandard (standardrb/standard) を採用し、全コードをこのルールに適合するよう修正しました。Standardは少々 “強い” 名前ですが、コミュニティの中でコレ一強・一択というものでもなく、あくまでひとつのオプションという立ち位置です。 しかしそれなりに大きなコードベースではこの

                                      RuboCopのルールセットを大きく変えるときに気をつけること(Standard導入編) - inSmartBank
                                    • .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という

                                      • カスタム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を書いて、このコードを自動修正することにしました。詳しい書き方についてはここ

                                        • HTML用ERBファイルのフォーマットを統一した話 - Sansan Tech Blog

                                          こんにちは。 名刺アプリ「Eight」でエンジニアをしている鳥山(@pvcresin)です。 最近、ミスタードーナツのミニオンコラボの商品を食べたのですが、 どれも美味しくて見た目もかわいいので最高でした。 特にポン・デ・リングベースのものは、表面のキャンディが口の中でパチパチと弾けて楽しいのでオススメです。 さて今回は、RailsのViewで使う、HTML用ERBファイルのフォーマットを統一した話をします。 ERBとは ERB(eRuby、embedded Ruby)はテキストにRubyのコードを埋め込むための仕様です。 Railsでは特にViewの部分のHTML生成によく利用されます(拡張子は.erb)。 ERBでは、以下のような記法でRubyのコードを埋め込めます。 <ul> <% @features.each do |f| %> <li><%= f %></li> <% end %

                                            HTML用ERBファイルのフォーマットを統一した話 - Sansan Tech Blog
                                          • 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
                                            • Hashの値の省略記法 - NaCl Blog

                                              とみなされるというもので、ES6と同じ記法です。 ただ、HashというよりSetに見えるという理由で却下されました。私自身、すごくほしいというよりは「実装できたから提案してみるか」という感じだったので、あまりがんばって説得しなかった気がします。 次の提案は2018年のFeature #14579 Hash value omissionです。Hashのように見えないのがいやだと言われたので という記法に変更しました。 これならちゃんとHashに見えるので意気揚々と提案したのですが、「前の文法よりいいけど、ES6の文法と違うRuby独自の文法の導入になっちゃうし、どっちも直感的じゃないから好きじゃない」という理由でこれも却下されました。 ES6と違う文法を導入するのはいやで、ES6の文法もいやということで、ああこれは詰みですねということでもう提案を諦めることにしました。 ところが、その後も同じ

                                              • 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 のメモ
                                                • Road to RuboCop 1.0

                                                  RubyKaigi Takeout 2020 Day1 Video: https://www.youtube.com/watch?v=jkY7J9k6mHs&feature=emb_logo

                                                    Road to RuboCop 1.0
                                                  • パーフェクト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の日記
                                                    • `&& return` より `and return` を好むべき理由 - koicの日記

                                                      かつての RuboCop は condition and return というコードに対して、condition && return にするようデフォルトでサジェスチョンしていた。 このサジェスチョンはおかしく見えたので、結構前に構成を変えてデフォルトで condition and return を受け入れるようにしている。 https://github.com/rubocop-hq/rubocop-rails/pull/224 https://github.com/rubocop-hq/rubocop/pull/7959 このあたり Ruby での演算子の結合順位をおさらいすると、以下のとおり。 && || and, or docs.ruby-lang.org サジェスチョンされるがまま演算子を変えると、結果が変わるサンプルです。 % ruby -e 'p false || true a

                                                        `&& return` より `and return` を好むべき理由 - koicの日記
                                                      • 正規表現でかんたんに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
                                                        • Railsのテストコードで使われているNamed Routesを実行時に文字列に直した話 - STORES Product Blog

                                                          CTOの藤村です。最近はぜんぜんRailsを書いていません。ふとSuggestion: Use string literals instead of named routes or URL helpers in tests · Issue #328 · rubocop/rails-style-guideというIssueを見て、2年ほど前にやったことを思い出したので、今更ながらブログを書くことにしました。 テストコードはNamed Routesを使うべきではない? Railsでは routes.rb で定義されたアクションへのパスやURLを出力するヘルパーが用意されています。posts_pathなようなメソッドたちですね。Named Routesと呼ばれるこれを使うことで、アプリケーションに存在しないURLを指定することを防げます。 アプリケーション側ではNamed Routesを使うべきで

                                                            Railsのテストコードで使われているNamed Routesを実行時に文字列に直した話 - STORES Product Blog
                                                          • .rubocop.ymlシンプルに、ゆるめにやりたいんじゃ ·

                                                            はじめに CIで怒ってくるrubocop、たまにしかruby書かない人にとっては「煩わしい!!」 みたいな感想を持たれる印象があるので、最近は極力シンプルなルールにするようにしていっています。 最近rubocopが1.0になったし、このエントリではそれを晒してみます。 ちなみにrubocopのバージョンは1.3.1(最新)で、プロジェクトはrailsアプリの想定です。 .rubocop.yml はい: # .rubocop.yml inherit_from: .rubocop_todo.yml inherit_mode: merge: - Exclude require: - rubocop-performance - rubocop-rubycw AllCops: DisabledByDefault: true Exclude: - 'gems/**/*' NewCops: enable

                                                              .rubocop.ymlシンプルに、ゆるめにやりたいんじゃ ·
                                                            • 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の日記
                                                              • rubocop-daemon 裏話: OSS の苦悩

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

                                                                  rubocop-daemon 裏話: OSS の苦悩
                                                                • 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
                                                                  • 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
                                                                    • 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の日記
                                                                      • Ruby: 手作りVS Code拡張をアンインストールしてRuby LSPアドオンに乗り換えました(翻訳)|TechRacho by BPS株式会社

                                                                        概要 元サイトの許諾を得て翻訳・公開いたします。 英語記事: Why I just uninstalled my own VS Code extension | justin․searls․co 原文公開日: 2024/07/06 原著者: Justin Searls -- Test Doubleの共同創業者です 日本語タイトルは内容に即したものにしました。 1年以上前に、Ruby LSP用のStandard Ruby(Standard)アドオンをリリースしないかとVini Stockから誘われ、ShopifyのRuby DXチームの多大な協力を得て(#630)、ついにリリースにこぎつけました。実は、standard gemのバージョンが1.39.1以上であれば、Ruby LSPの新しいアドオンとして既に組み込まれています。 Ruby LSPは、言語サーバー(language server

                                                                          Ruby: 手作りVS Code拡張をアンインストールしてRuby LSPアドオンに乗り換えました(翻訳)|TechRacho by BPS株式会社
                                                                        • 【令和最新版】カスタムCop 作成 ガイド Ruby 静的解析 RuboCop コードフォーマッタ Linter【AutoCorrect: contextual対応】 - ANDPAD Tech Blog

                                                                          はじめに こんにちは。姓は#LR_parser_gangs、名はydahです。最近は子が「となりのトトロ」にハマっており、毎日「となりのトトロ」がリビングで流れています。 全く飽きないのか、毎日のように「となりのトトロ観る〜?(意訳:となりのトトロが観たいのでリモコンを操作して欲しい)」と言い続け1ヶ月が経とうとしています。 これは ANDPAD Advent Calendar 2024 3日目の記事です。 今回はRubyKaigi 2024やKaigi on Rails 2024で秘蔵のesaとして配布した、RuboCopのカスタムCop作成のための資料を公開します。 カスタムCopの作成ができると、自社のコーディング規約合わせた柔軟なルールを定義し管理することができるようになります。 アップストリームに提案を送るのもよいですが、汎用的でない場合や、限定された状況でのみ有用なルールという

                                                                            【令和最新版】カスタムCop 作成 ガイド Ruby 静的解析 RuboCop コードフォーマッタ Linter【AutoCorrect: contextual対応】 - ANDPAD Tech 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 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の日記
                                                                              • 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

                                                                                • RubyKaigi Takeout 2020 に登壇した - koicの日記

                                                                                  RubyKaigi Takeout 2020 に登壇した。 本編登壇は RubyKaigi 2018 以来 2 回目。去年 RubyKaigi 2019 では LT 登壇で TracePoint を使うことによって仕込んでしまったバグの話をしていた。 今回のスライドは以下です。 RuboCop 1.0 に向けた話 本編から RuboCop 1.0 に向けた話をいくつかピックアップしておきます。後述の収録への問題があったため、特に終盤テンポが上がっていることからテキストとして少し補足しておきます。 拡張 API の変更 拡張 Cop の開発者向けの API は以下のように変更になります。 これまでの API: class CustomCop < Cop def on_send(node) end def autocorrect(node) end end これからの API: class C

                                                                                    RubyKaigi Takeout 2020 に登壇した - koicの日記

                                                                                  新着記事