smellman's Broken Diary

クソみたいなもんです

2023/10/18の日記 - Ruby My Dear / Lst

生活と仕事

1:00ごろ起床。

テレビの録画を見てからクラブハウスでちょっとお話。

5:00から勤務開始したけど、6:00からちょっと休憩。

7:10から珈琲貴族エジンバラへ移動。

Rubyのコードをガシガシ書いてた。FAX対応ってテンションが上がらない。

10:40ごろ帰宅。

家でもRubyのコードをガシガシと。

14:00からプロジェクトのもくもく会を。

Job管理を実装しないといけない感じになってきたので調べていたらPostgreSQLをバックエンドにしたものを見つけた。

github.com

Sidekiqもいいんだけど、Redisが必要なのがちょっと面倒だなと思っていたのでこれは良さそう。あと、関係ないけどGood Job!っていう任天堂のゲームを思い出した。

www.nintendo.co.jp

というわけで実装してみた。いい感じでHTTP.rbでresponseにsleepかけてjobでステータスを変えるテストコード書けた。

あと、Railsのcredentialsを一時的に変更する処理も出来た。これはテストコードが元のcredentialsを汚さないために実装した。

# frozen_string_literal: true

require 'test_helper'

class HogeTest < ActiveSupport::TestCase
  CredentialsStub = Struct.new(:login_id, :password, :address)

  def setup
    # stub credentials
    @original_credentials = Rails.application.method(:credentials)
    Rails.application.define_singleton_method(:credentials) do
      CredentialsStub.new('test', 'test', 'test@example.com')
    end
  end

  def teardown
    # revert to original method
    Rails.application.define_singleton_method(:credentials, @original_credentials)
  end

  test "hogehoge" do
    ...
  end
end

これの注意点としてはdefine_singleton_methodで上書きしているのでもちろんここで指定していないメソッド(Rails.application.credentials.aws.access_key_idとか)が消えてしまうこと。あくまで一時的な物として利用する必要がある。

気づいたら今日12時間以上働いていた。やばいやばい。

明日は糖尿病の結果を聞きに行くので今日は早めに休もう。この後英会話あるけど!

音楽

Ruby My Dearの新譜が出ました。

Ruby My Dearらしいブレイクコアが久々に聞けて大満足です。