冷静になってゆっくり理解すれば、そりゃそっかという話なんだけど、Railsプロジェクトのコードでめっちゃ混乱したので、書いておく。 TL;DR extend selfは特異クラスへのincludeと等価というのがミソ。 混乱したコード 目にした瞬間これ本当に大丈夫なのかと思ったコード。 class ApplicationController < ActionController::Base # something class << ActionController::HttpAuthentication::Digest # seconds_to_timeoutを書き換えたい def validate_nonce(secret_key, request, value, seconds_to_timeout=60*60) # somthing super end end end このコードを見
![Rubyのモジュールでextend self - 解せぬ日記](https://cdn-ak-scissors.b.st-hatena.com/image/square/a0b1c2d5672a36d5c40721434743b15061885d12/height=288;version=1;width=512/http%3A%2F%2Fecx.images-amazon.com%2Fimages%2FI%2F51TODrMIEnL.jpg)