きり丸の技術日記

技術検証したり、資格等をここに残していきます。

Ruby

Railsでfirstを指定しているのにたまに11件取得していた(原因不明)

当記事は問題解決に向けた記事ではありません。調べても原因が分からなかったので、事象の報告記事となります。 環境 Ruby 2.7.2 Rails 6.0.0 発生事象 ActiveRecord::Baseを継承したクラスにて、特定の条件のレコードの1行目を取得したかったので、次のよう…

Rubyでモックの呼び出し回数によって返却値を変更する

同一のパラメータでメソッド呼び出しを行っている。しかし、呼び出した回数によって返却値を変更したい。 そのようなユースケースを満たすために素振りしました。 環境 Ruby 3.0.2p107 Rails 6.0.3.7 RSpec ユースケース 時刻は常に、Time.nowで取得している…

Rubyでテストの時間を固定させる(TimeHelpersとその他)

Rubyのメソッドよくわからないものが多いので、素振りします。 今回の記事では、テストの時間を固定するためのヘルパークラスであるActiveSupport::Testing::TimeHelpersを理解するために素振りしました。 ※ Rubyのバージョンによっては、時刻固定後に戻す必…

Rubyで法律に従った暦による期間計算(日割りにならない1ヵ月を求める)

以前、法律に従った暦上の計算方法を記事にし、Javaでも同様の記事を作成しました。 当記事ではRubyで法律に従った暦による期間の計算を求める方法を記します。 環境 Ruby 3.0.2p107 Rails 6.0.3.7 RSpec 対応 テストデータとロジックに関してはJavaと同じで…

Rubyのtapとthenメソッドを理解するために素振りした

Rubyのメソッドよくわからないものが多いので、素振りします。 今回の記事では、tapメソッドとthenメソッドを理解するために素振りしました。なお、私はJavaをメインとしたエンジニアのため、Javaに置き換えた記載もあります。ご了承ください。 環境 Ruby 3.…

Rubyでリフレクションしてメソッドを呼び出す(public_send)

Javaだと面倒だったリフレクションがRubyだと簡単にできてしまったので、メモします。 もっと詳しく書いている記事はありますので、私の記事はメモレベルです。 環境 GitHub Codespaces Ruby 3.0 RSpec 対応 準備 適当なクラスを用意します。今回の記事では…