デブサミ 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とかバンバン使われちゃうのは、
# 抵抗あったりしますけど、ここぞってときはありますからね。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする