Railsのソースコード読んでみる | Active Support cattr_reader編

f:id:sktktk1230:20180726124729p:plain

普段仕事で使っている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 で探します

f:id:sktktk1230:20190806123806p:plain

検索結果内に aliasメソッドがあったので、実際の定義は mattr_reader のようです

alias :cattr_reader :mattr_reader

いつも通りコードリーディングしながら記事を書いていたんですが、以前 mattr_reader 読んでいたので、泣く泣くそれは破棄しました

mattr_reader のコードリーディング記事のリンク貼っておきます

blog.shitake4.tech