普段仕事で使っているRuby on Railsですが、ソースコードを読む機会もなかなかないので、試しにやってみることにしました
読めるようにするまで
以前書いた記事で読めるようにするまでの設定を画像キャプチャ付きで解説しましたので、よろしければこちらをご参照下さい
shitake4.hatenablog.com
読んだ箇所
cattr_reader
を今日は読んでみようと思います
どんな使い方だっけ?
読んでみる前にまずは使い方を調べてみます
RAILS GUIDESの日本語ドキュメントを見てみると
これらのメソッドは、クラス変数をnilに設定し (クラス変数が既にある場合を除く)、対応するクラスメソッドを生成してアクセスできるようにします。
class MysqlAdapter < AbstractAdapter # @@emulate_booleansにアクセスできるクラスメソッドを生成する cattr_accessor :emulate_booleans, default: true end引用:RAILS GUIDES:4.1.2 cattr_reader、cattr_writer、cattr_accessor
ソースコードを読んでみる
1. railsプロジェクトのactivesupportにある機能ですので、activesupportディレクトリのlib配下で def cattr_reader
を探してみます
該当する定義がないので cattr_reader
で探します
検索結果内に aliasメソッドがあったので、実際の定義は mattr_reader
のようです
alias :cattr_reader :mattr_reader
いつも通りコードリーディングしながら記事を書いていたんですが、以前 mattr_reader
読んでいたので、泣く泣くそれは破棄しました
mattr_reader
のコードリーディング記事のリンク貼っておきます