並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 13 件 / 13件

新着順 人気順

rubocopの検索結果1 - 13 件 / 13件

  • 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を利用しており、またファイル

    • 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-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
        • 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の日記
          • 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
            • 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 のメモ
              • rubocop-daemon 裏話: OSS の苦悩

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

                  rubocop-daemon 裏話: OSS の苦悩
                • 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を使ったらとても便利だった - 出る杭は打たれない
                  • 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 を作ってみる - やなぎにっき
                    • 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
                      • 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
                        • RubyKaigi2024に参加してきました⛱️

                          2024年5月15〜17の3日間、沖縄県那覇市で開催されたRubyKaigi2024に参加してきました! 今年も楽しかったですね・・・! だいぶ間が空いてしまいましたが、聴講したトークや思ったことなど書いてみました。 トーク感想 Day1 The grand strategy of Ruby Parser by Yuichiro Kaneko 発表資料 Ruby3.3で導入されたパーサージェネレータであるLramaについて、どんなものなのか、それがなぜ選ばれたのか、そして現在のRubyのパーサ周りの開発がどのような状況かといった内容でした。 まずここでいうパーサとは、Rubyのコードを解釈してASTとして出力するためのものです。 出力されたASTは、主にLSPのような開発支援の外部ツール等で使われます。 Ruby3.3では、それまでのBisonに代わってLramaというRubyで書かれた新

                            RubyKaigi2024に参加してきました⛱️
                          • 【Rails】assertとassert_predicateの違い - Qiita

                            1. はじめに 現在、RailsチュートリアルでRuby on Railsを学習しています。 第6章で紹介されるテストコードに対してRubocopで解析をかけたところ、assert @user.valid?ではなくassert_predicate(@user, :valid?)の使用を推奨されました。 今回はこれら2つの違いについてまとめていきます。 2. assert・assert_predicateとは assertメソッドもassert_predicateメソッドもMinitestで使えるアサーションの1つです。 Rails テスティングガイドの説明を引用してまとめると以下の通りです。 ■ assert 指定した式(test)がtrueである場合、テスト成功。 assert( test, [msg] ) testはtrueであると主張する。 ■ asset_predicate オブジ

                              【Rails】assertとassert_predicateの違い - Qiita
                            1