並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 80件

新着順 人気順

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

rubocopに関するエントリは80件あります。 rubyrailsRuby などが関連タグです。 人気エントリには 『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コアに変更した。費用は変わらない。 また同時に、8プロセスで並列実行するためにparallel_testsを導入した。このプロジェクトではMySQLとElasticsearchを利用しており、またファイル

    • 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
        • Is it time to change the name? · Issue #8091 · rubocop/rubocop

          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

            Is it time to change the name? · Issue #8091 · rubocop/rubocop
          • 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 リネーム騒動の所感 - @kyanny's blog

              Is it time to change the name? · Issue #8091 · rubocop-hq/rubocop · GitHub Rubyists, we must do better | timriley-info The RuboCop Name Drama Redux | Meta Redux 件の騒動を知る前に「Black Lives Matter の流れに乗って名前変えたらいいんじゃねーの」とは思った 難癖をつけられて揉める前に済ませておくほうが楽そう、とか FactoryBot のことを当然思い出しながら 個人的に RuboCop は好きではなく愛着もないので、というのもある リネームしたら?という提案自体は、まぁ妥当な範囲内だと思う master ブランチやめます話もあることだし https://twitter.com/mislav/status/1270

                RuboCop リネーム騒動の所感 - @kyanny's blog
              • 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
                • “社内つらみトップランカー”を210プルリクで倒しきった話 技術的負債は“継続して返却”すればいつかは終わる

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

                    “社内つらみトップランカー”を210プルリクで倒しきった話 技術的負債は“継続して返却”すればいつかは終わる
                  • 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
                    • 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の“破壊的変更”を恐れるな! 毎日OSSに関わるRuboCopコミッターが教える傾向と対策

                        Rubyはバージョンアップによって、やむなく旧バージョンとの互換性がなくなってしまうことがあります。それが破壊的変更です。静的コードアナライザーモジュールであるRuboCopのコミッターのkoic氏が、どんなときに破壊的変更が起きるのか、起きてしまったときは、どのように対応すればよいのか、その背景と対策を語ります。 Rubyの静的コードアナライザーモジュール「RoboCop」 koic氏:こんばんは。今回は「Breaking Change」というタイトルで発表します。Twitterは「@koic」というハンドルネームでやっています。永和システムマネジメントという会社から来ました。 (Rubyの静的コードアナライザーモジュールの)RuboCopは、今日も含めて何度か話に出ていると思うのですが、私はそこのコミッターをしていたり、RailsのActive RecordのOracleを使っている部

                          Rubyの“破壊的変更”を恐れるな! 毎日OSSに関わるRuboCopコミッターが教える傾向と対策
                        • 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
                              • プロジェクト独自のコーディングルールを簡単に正規表現で定義できる `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の日記
                                  • 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
                                        • `Layout/LineLength` のデフォルトを 120 にした - koicの日記

                                          RuboCop の LineLength のデフォルトが 80 ではつらいという声はずっと聞いていて、そもそも RuboCop にパッチを送り始めた頃は、いつかこの変更をするのが目標のひとつだった。 今回 3年半越しに実現することができた。現在の最新版の RuboCop 0.84.0 に適用済み。 github.com OSS で年月をかけた粘り強い振る舞いは kamipo さんから学んだことで、RangeError にまつわる rails/rails#30000 もそこに到るまでを含めてコントリビュータ時代から何年か掛けていると聞いている。 RuboCop リポジトリ自体の方では、その後にコアメンバーからエディタを縦分割した際に 120 だと厳しいという声があり、RuboCop リポジトリ自体の設定は 100 になったというエピソードがある (デフォルトの設定は 120 で維持されていま

                                            `Layout/LineLength` のデフォルトを 120 にした - 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という

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

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

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

                                                  RuboCopのルールセットを大きく変えるときに気をつけること(Standard導入編) - inSmartBank
                                                • 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
                                                  • Rails/UniqueValidationWithoutIndex copを追加した - pockestrap

                                                    rubocop-rails にRails/UniqueValidationWithoutIndex copを追加しました。 rubocop-railsの次期リリース(おそらくv2.5.0)から利用できます。 github.com これはなに Rails/UniqueValidationWithoutIndex copは、RDBMSのunique indexがついていないカラムに対して、Active Recordのレイヤーでuniquenessバリデーションを書いている場合に警告をします。 たとえば次のバリデーション定義がある時を考えます。 class User < ApplicationRecord validates :account, uniqueness: true end この時、このCopは次のスキーマ定義によって警告を出したり出さなかったりします。 # account カラムに

                                                      Rails/UniqueValidationWithoutIndex copを追加した - pockestrap
                                                    • 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

                                                        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

                                                        • 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の日記
                                                            • 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 のメモ
                                                              • 正規表現でかんたんに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
                                                                  • RailsエンジンをRuboCopで徹底的に分離する:前編(翻訳)|TechRacho by BPS株式会社

                                                                    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Isolating Rails Engines with RuboCop - Flexport Engineering 原文公開日: 2019/11/10 著者: Max Heinritz サイト: Flexport Engineering -- 流通系のシステムを手掛けている開発会社です 日本語タイトルは内容に即したものにしました。画像はすべて元記事からの引用です。 FlexportのメインとなるバックエンドサービスはRuby on Railsモノリスです。弊社を立ち上げた頃はRailsのおかげでビジネスを素早く進めることができました。しかし、成長著しいスタートアップによくあることではありますが、チームが育つに連れて複雑さを管理するのが困難になってきました。 当初はRailsの利便性のおかげで生産性が向上しましたが、今やそのせい

                                                                      RailsエンジンをRuboCopで徹底的に分離する:前編(翻訳)|TechRacho by BPS株式会社
                                                                    • .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シンプルに、ゆるめにやりたいんじゃ ·
                                                                      • スレッドセーフでない Dir.chdir の使用を RuboCop で禁止する / マスタカの ChangeLog メモ

                                                                        週刊Railsウォッチ(20200225前編)RubyのShellwordsライブラリは知っておくべき、VCRはやはり有能、copを自作、Hix on Rails記事ほか|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社 RuboCopでコードレビュー支援: Net::HTTPを使わせないcop(Hacklines より) そういえば以前業務で似たことをやったので、メモがてら置いておきます。 Dir.chdir はスレッドセーフではない# Sidekiq で Dir.chdir を使ったら、他のジョブと干渉してハマりました。 Feature #9785: Feature Proposal: Dir.chdir Thread Safety - Ruby master - Ruby Issue Tracking System ↑ こちらの Issue を見つ

                                                                        • The RuboCop Name Drama Redux

                                                                          By now, if you’re part of the Ruby programming community, you’ve probably heard of the proposal to rename RuboCop and the unpleasant events that followed it. I really struggled with coming up with a name for this article, as there are many topics I wanted to touch upon (e.g. the burden of OSS stewardship, being respectful and adhering to the norms that once defined the Ruby community, creating a s

                                                                          • 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

                                                                                  新着記事