普段仕事で使っているRuby on Railsですが、ソースコードを読む機会もなかなかないので、試しにやってみることにしました
読めるようにするまで
以前書いた記事に読めるようにするまでの設定を画像キャプチャ付きで解説しましたので、よろしければこちらをご参照下さい
shitake4.hatenablog.com
読んだ箇所
Rails書いているとよく使う present?
を今日は読んでみようと思います
どんな使い方だっけ?
読んでみる前にまずは使い方を調べてみます
Railsの日本語ドキュメントを見てみると
変数.present?
!blank? を実行するメソッド。if 変数.present?とunless 変数.blank?は同じ意味
nil, "", " "(半角スペースのみ), , {}(空のハッシュ) のときにfalseを返します。
Railsで拡張されたメソッドで、Rubyのみでは使えないのでご注意ください。
引用:Railsドキュメント:present
とのことです
こちらも blank?
同様によく使うメソッドです
ソースコードを読んでみる
1. railsプロジェクトのactivesupportにある機能なので、activesupportディレクトリのlib配下で def present?
を探してみます
2. 該当箇所が1箇所なので、それをみてみます
activesupport > lib > active_support > core_ext > object > blank.rb
class Object 中略 # An object is present if it's not blank. # # @return [true, false] def present? !blank? end
blank?メソッドの返り値を否定演算子で評価しています
blank?の返り値は、true
か false
なので、present?も必ずtrue
か false
となります
※ blank?メソッドのソースコードリーディングについてはこちら
読んでみて
今回は実装箇所が一箇所のみだったのとすでに blank?
を読んでいたので、すんなりと理解することができました
読み進めていくうちにそれぞれの実装が関連しあっていくとより楽しめそうです