ジョギング
日課
- (腕立て x 50 + 腹筋 x 30) x 3
クックックピザクック
- 夕飯はピザだった
- 生地の薄いタイプが美味しゅうございました
AWS メモ
- Public アクセスが有効な RDS に同一 VPC 内の EC2 や Lambda からアクセスする場合には Private IP でアクセス出来る
- VPC 上で起動した Amazon Elasticsearch Service ドメインから VPC 内の Lambda からサクッとアクセス出来た
- 但し, Kibana については, ALB や ELB を使うか, EC2 を立てて, Kibana を別途インストールして Elasticsearch にアクセスさせるようにする必要がある...
今日のるびぃ ~ メソッド探索とか (2) ~
Mod1 を prepend で Mix-in (2)
prepend したモジュールで super を呼び出すと...
module Mod1 def method1 super 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 "Cls2#method1" "Mod1#method1" => "Mod1#method1" [8] pry(main)> Cls2.ancestors => [Mod1, Cls2, Cls1, Object, PP::ObjectMixin, Kernel, BasicObject]
prepend されたモジュール内で super を呼び出すことで, 継承チェーン上のクラスから同名のメソッドを探索して呼び出すことが出来る. ということは, 以下のような場合でも継承チェーンを辿って同名メソッドを呼び出すことが出来る.
module Mod1 def method1 super p 'Mod1#method1' end end class Cls1 def method1 p 'Cls1#method1' end end class Cls2 < Cls1 prepend Mod1 def method2 p 'Cls2#method1' end end Cls2.new.method1 Cls2.ancestors
pry で実行例.
[7] pry(main)> Cls2.new.method1 "Cls1#method1" "Mod1#method1" => "Mod1#method1" [8] pry(main)> Cls2.ancestors => [Mod1, Cls2, Cls1, Object, PP::ObjectMixin, Kernel, BasicObject
ふむふむ.