背景
Ruby on Railsのチュートリアルを勉強後、一つサイトを作ってみましたが、他の人のソースを読むと「まだまだ理解できていないところが多いな・・・」と感じました。
これはいかんと思い、まずはRubyの知識を補うため「kaminariを読んでみよう!!!」って事で読み始めてみました。
最初のコードリーディングにkaminariを選んだ理由は、有名なgemであり、中できっと難しいことしているだろうという考えです。
その中で分からなかった記述方法や違いについてしっかりと理解できていなかった点を下記に挙げてます。
基本的には分かりやすかったサイトへ誘導するようにしてます。
コードリーディングはまだ道半ばなので、新たにあれば追加していきます。
extend, include, prependについて
extend
クラスがモジュールをincludeすると、モジュールのインスタンスメソッドを特異メソッドとして追加
include
クラスがモジュールをincludeすると、モジュールのインスタンスメソッドを追加
prepend
includeに近いですが、継承チェーンはプリペンドしたクラスの手前に入ります。
参考サイト
【Ruby】includeとprependとextendの違いと用途
yield(+ブロック、proc)について
railsのViewでyieldは使ったけど、よくわかってない・・・。
調べると、ブロックやprocがセットで出てくるので合わせて勉強。
yield
yieldは"供する", "譲る"などの意味があり、メソッド呼び出し時にブロックを与えると、メソッド内でyieldでブロックの処理を実行できます。
ブロック
メソッド呼び出し時に{}やdo...endで囲まれているもの。
proc
yieldで実行する以外に、引数に&procという引数を追加すれば、ブロックをproc.callで実行できるようになります。
参考サイト
<=>について
最初は何かわからなかったけど、<と=と>であると理解すれば納得。
###<=>
JavaのCompareと同じ。