ジョギング
- 香椎浜 x 2 周
- んー, なんだかなーって感じ
日課
- (腕立て x 50 + 腹筋 x 30) x 3
夕飯
- 豚角煮
- 一晩寝かせてさらに美味しくなっていたけど, もう少し甘みが欲しいなあと思ったり
今日のるびぃ ~ awspec の issue に挑む (2) ~
どんな issue だったか
Elasticache for Redis のキャッシュパラメータグループ timeout
というパラメータを its
メソッドでテストしようとした場合に, Object#timeout
が呼ばれてしまうというもの.
[再掲] なんでこんな事が起こるのか
ここからはあくまでも自分の知識レベルで書いた妄想.
- テストケースで対象となるパラメータ名は method_missing で捕捉している
- method_missing を利用することで, パラメータ名を意識することなく実装出来る
- ただ, メソッドが存在しない場合には継承しているクラスやモジュールを遡ってメソッドを探索する
- メソッドを探索した結果, Object#timeout を呼びだそうとしてしまっていた
プルリクエスト
Object#timeout を未定義するプルリクエストを送ったところ, @K1Low さんにレビューしてもらったところ, 以下のようにコメントをもらった.
Awspec::Type::Base 以下で timeout メソッドを undef したほうが良いとのアドバイスを頂いた. なるほど, Awspec::Type::Base 以下で適用することで, Awspec::Type::Base 内だけで Object#timeout を未定義状態にして, 他の処理への影響を最小限に抑える意図があると考えている.
ということで, 以下のように修正をした.
https://github.com/k1LoW/awspec/pull/353/files#diff-1eb27b1d1908fc06e5d70107de96141a
シンプルに解決出来た気がする.
ということで
マージ してもらった! 有難うございます!
ふむふむ.