Ruby
個人のWebサービスでconfig.content_security_policy_report_only=trueを外し、CSP違反があった場合にブラウザエラーを発生させるようにしたところ、Sytem Specが軒並み落ちるようになり対応したのでやったことをメモ 事象 原因 解決策 参考 事象 ブラウザエ…
Rubyのdefine_methodを使うと外部からレシーバーに任意のメソッドを定義できますが、キーワード引数を持つメソッドを定義するときにやり方を迷ったのでメモ docs.ruby-lang.org define_methodは以下のようにblockを渡してメソッドを定義できますが、block引…
Heroku等で運用しているとバッチサーバーを別のプロセスで実行するとお金が掛かったりするのでGoodJobを用いている場合にRailsアプリケーションと同一プロセスで起動する方法をメモ GoodJobについてはこちら madogiwa0124.hatenablog.com やり方としては簡単…
個人のWebサービスがRuby 3.3アップデート後にbin/rails系のコマンド実行時にconcurrent-rubyでSegmentation faultが発生したのでメモ $ bin/rails c /app/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/atomic/lock…
Haml v6からHamlの内部実装がHamlitに置き換わりパフォーマンス向上等のメリットがありますが、 github.com 以下のissueでコメントされている通り、 github.com Vue.js等を利用している場合に以下のようなfalsyの値がv5系では<cutsom-element />となっていたのが、 %cutsom-ele</cutsom-element>…
vscode-standard-rubyでプリインストールのrubyで実行されてしまいパッケージマネージャーで関しているバージョンで実行されずLSPが落ちてしまいハマったので対応したことをメモ github.com 事象 解決方法 参考 事象 以下のようにターミナルで確認するとパッ…
rbenv+nodebrewからasdfに移行してみたのでやったことをメモしておきます github.com asdfインストール 公式はgit cloneの方法のようだが、homebrewからinstallできるようなのでinstall https://asdf-vm.com/guide/getting-started.html#_2-download-asdf $ …
テスト用にRoutingを動的にいじってテストしたいことがたまにあるのでやり方をメモ まず以下のようなテスト用のhelperを用意します。 中でやっていることは動的にrouteを追加するdraw_test_routesとそれをリセットするreload_routes!を実装しています。 modu…
Ruby on RailsでメーラーのViewはデフォルトでapp/views配下に置かれてしまい数が多くなってくるとControllerからrenderされるものとMailerからrenderされるものが混在してしまい見通しが悪くなるケースがあります。 メーラーのビューは app/views/name_of_m…
今までVSCodeでRubyを使うときにはrebornix.rubyを使うことが多かったと思うのですが、 marketplace.visualstudio.com 現状は非推奨となっており、 Shopify's ruby-lsp and associated vscode-ruby-lsp are recommended alternatives to this extension. It …
2023/10/05にRuby on Rails v7.1がリリースされました rubyonrails.org 個人のwebサービスなので以下のように規模はかなり小さめですがやったこととかをメモ +----------------------+--------+--------+---------+---------+-----+-------+ | Name | Lines …
Ruby on Rails 5.2からContent Security Policyヘッダーを設定するDSLが提供されました。 2.5 Content Security Policy Rails 5.2 ships with a new DSL that allows you to configure a Content Security Policy for your application. You can configure a…
Proc(lamda)を定義時ではなく実行時のコンテキスで実行する際にちょっとハマったのでメモ 結論: instance_exec(&proc)で実行すれば良かった。 以下のような外部で定義したprocを受け取って実行した際にhello! by Caller.と出ることを期待したのですが実行す…
RSpecのカスタムマッチャの作り方をいろいろ調べたのでメモ 作り方 RSpec::Matchers.defineを使う moduleで定義する おわりに 参考 作り方 RSpec::Matchers.defineを使う カジュアルな追加方法としてRSpec::Matchers.defineで追加する方法があります。 以下…
Ruby on Railsを拡張するGemを作成する等、デフォルトの振る舞いといったものRails.application.configureで設定できるようにしたいなぁと思ったのですが、config.xは使わずにネストしたカスタム設定をいい感じに追加する方法をメモ🗒 Railsガイドを見ると以下…
はじめに 基本方針 実装したコード 利用例 おわりに はじめに RailsでVue.jsを採用している場合、Vue SFCのscoped cssを利用してCSS周りの統制と取りたくなりますが、RailsのView層に色々要素を書いてしまうとそれも難しくなってきます。 vue-loader-v14.vue…
Ruby on Rails製の個人のWebサービスにOpen APIのChat GPTを使った機能を盛り込んだ時にruby-openaiを使うと簡単にリクエス部分を実装できたので、ほとんど公式READMEの通りですがメモ github.com API KEYの取得方法等は以下の記事を参考にしてください。 ma…
Ruby 3.2.0で導入されたYJITをHerokuで有効化してみたのでやり方をメモ github.com HerokuでYJITを有効化する 結論だけ言うと、以下のコマンドを実行して環境変数RUBYOPTに--enable-yjitを指定してあげればです✨ heroku config:set RUBYOPT="--enable-yjit" …
昨年末Ruby 3.2.0がリリースされましたね✨ www.ruby-lang.org 今更ながらローカルのRubyのバージョンをrbenvで3.2.0に上げようと思ったのですがエラーが発生したのでその対応方法とかをメモ 発生した問題 解決方法 発生した問題 いつもどおり以下のコマンド…
最近個人のサービスのフロントエンド周りをタイトル通りwebpack + SimpackerからVite + Vite Railsに移行したので対応したこととかをメモ 前提事項 Vite v.3.2系のHMRは使わない構成になります Vite Rubyを使うとbin/viteで起動しないといけないっぽかったの…
Railsを使っていてRSpecでststem specとrequest specのテストだけ実行したい時とかに--pattern関連オプションを利用すると便利だったので使い方をメモ RSpecの--patternの使い方 公式Doc relishapp.com Help $ bundle exec rspec -h # ... -P, --pattern PAT…
何かしらの非同期なバッチ処理を実装したい場合にはSidekiqをActiveJobのバックエンドとして利用することが多いと思いますが、SidekiqはRedisに依存しており、個人のWebサービスとかでなるべくコストを抑えたいときにはRedisを立てずに実装したいものです。 …
普段、CSV出力系の機能を作ることが稀に良くあるが、割と毎回同じようなことを実装してる気もするのでいい感じに共通化できないか実装を検討したのでメモ CSV出力の実装検討メモ 考えたこと 実装してみる 利用例 参考 ※ベンチマークは特に取ってない CSV出力…
2022/9/6にRack3がリリースされました github.com Security fixが入ってたり、破壊的変更が入ったりもしてるようですね RailsやSinatraでもアップデートの準備が進められているようです。 github.com github.com 自分も個人で細々とメンテしているオレオレWe…
Railsで非同期jobを利用する際にSidekiqを使っている場合、任意のJobをスケジュール実行したいことがあります。 今までは割とsidekiq-cronを使うことが多かったのですが、最近はsidekiq-schedulerの方が活発にメンテナンスされており、そちらを使ってみたの…
Rails 6から導入されたActiveSupport::ActionableErrorを使うと例外発生時に画面から任意の処理が実行できて便利そうだったので使い方とかをメモ github.com Rails標準ではActiveRecord::PendingMigrationErrorが発生時にこちらを使ってmigrationが行えるよ…
bundler/inlineを使うとGemのバグ報告やlogger系のGemを使った調査などでGemfileを使わずに1つのRubyファイルだけで完結できると便利だったのでMEMO bundler.io 例えば調査のために以下のpretty print系のGemを使いたいとします。 github.com 普通だと以下の…
間接的に依存しているライブラリに脆弱性がある場合等、自身のpackgae.jsonのどのpackageを更新すれば解消できるか等を調べたい場合、lockファイルを頑張って確認するのは大変です。 package manager(yarn, npm)の機能を使うと割と簡単に調べられたのでメモ …
タイトル通り、かなりハマったので事象をメモしておく。 事象 タイトル通りですが、strict_loading!をしてeager_loadingを強制しているPolymorphic関連を持つモデルから、 関連を辿ると本来であればActiveRecord::StrictLoadingViolationErrorが発生すると思…
認証周りの勉強がてらAikotobaというEmail/Passwordによるシンプルな認証ライブラリを作成しましたので使い方とかをメモしておきます。 rubygems.org Aikotobaとは? Rails engineを使ったEmail/Passwordによるシンプルな認証ライブラリを作成できるライブラ…