仕事現場では最近になって、ようやく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とかバンバン使われちゃうのは、
# 抵抗あったりしますけど、ここぞってときはありますからね。
コメント