デブサミ 13-B-3 ふつうのRubyプログラマに贈るRubyプログラミング講座

仕事現場では最近になって、ようやくRubyっぽいコードが~みたいなノリに なってきましたが。Ruby言語仕様ってあんまり語られなかったりすんのかなって。 そんな中で、この講演は非常に面白かったです。

前半は、Rubyのprotectedって微妙じゃね?っていう。 Javaとかから流れてきた人のコードとかバンバン使ってるし、 Railsでもバンバン使われてるけど、オブジェクトの外からでも呼べちゃうんだぜ的な。 いらなくね?的な。

他にも、pとppの違いとか、to_sとinspectの違いとか、 unlessとかuntilとか使うとわかりやすいよね~とか。

ただ、一番へぇ~って思ったのは、Ruby1.8と1.9の差を埋めるハック。 1.8だとsendで呼べたのが、1.9だとfuncallってやんないと呼べない場合。

↓funcallがなかったら、sendに割り当てちゃうぜっていう。 これだったら、funcallで呼べば1.8でも1.9でもOK。 unless Object.method_defined?(:funcall) class Object alias funcall send end end

あんまりsendとかバンバン使われちゃうのは、

抵抗あったりしますけど、ここぞってときはありますからね。