ジョギング
- 積極的に休む
日課
- (腕立て x 50 + 腹筋 x 30) x 3
奥さん
- 引き続き, 体調が悪い
- どうやって励ませばよいかわからなくなる時があるけど, 出来るだけ寄り添ってあげられればと考えている
- 夜はバタバタしてて, 奥さんが好きな鍋を作ることが出来なかった
Ruby 25 周年
ソフトウェア工学
昨日, TDD 勉強会に参加して, TDD をちゃんと知るためにはソフトウェア工学をちゃんと勉強すべきという結論に至ったので, 勉強方法を模索している.
今日のるびぃ ~ メソッド探索とか (1) ~
すぐに忘れるので.
基本パターン
module Mod1 def method1 p 'Mod1#method1' end end class Cls1 def method1 p 'Cls1#method1' end end class Cls2 < Cls1 def method1 p 'Cls2#method1' end end Cls2.new.method1 Cls2.ancestors
pry で実行例.
[6] pry(main)> Cls2.new.method1 "Cls2#method1" => "Cls2#method1" [7] pry(main)> Cls2.ancestors => [Cls2, Cls1, Object, PP::ObjectMixin, Kernel, BasicObject]
Mod1 を include で Mix-in
module Mod1 def method1 p 'Mod1#method1' end end class Cls1 def method1 p 'Cls1#method1' end end class Cls2 < Cls1 include Mod1 def method1 p 'Cls2#method1' end end Cls2.new.method1 Cls2.ancestors
pry で実行例.
[6] pry(main)> Cls2.new.method1 "Cls2#method1" => "Cls2#method1" [7] pry(main)> Cls2.ancestors => [Cls2, Mod1, Cls1, Object, PP::ObjectMixin, Kernel, BasicObject
Mod1 を prepend で Mix-in
module Mod1 def method1 p 'Mod1#method1' end end class Cls1 def method1 p 'Cls1#method1' end end class Cls2 < Cls1 prepend Mod1 def method1 p 'Cls2#method1' end end Cls2.new.method1 Cls2.ancestors
pry で実行例.
[7] pry(main)> Cls2.new.method1 "Mod1#method1" => "Mod1#method1" [8] pry(main)> Cls2.ancestors => [Mod1, Cls2, Cls1, Object, PP::ObjectMixin, Kernel, BasicObject]
prepend を呼び出したクラスよりも先にモジュールに対してメソッド探索を行う.
ふむふむ.