Ruby 2.4 で refinements の制限が緩和された
さて、先日 Ruby 2.4 がリリースされました。
[refinements の制限を緩和]
Ruby 2.4 では refinements の制限が緩和され、#send
からも refine
されているメソッドが呼び出せるようになりました。
class X; end module Ex refine X do def homu p "homu" end end end using Ex x = X.new x.send :homu # => "homu"
日頃から refinements クソだ!と言ってる勢としては『やっと対応されたか…』という感じ。
今後も使い勝手がよくなるようにここら辺の制限の調整がすすむといいですねえ…。
あとリリース前に Symbol#to_proc
内からも呼び出させるようになると聞いたんですが、こっちはまだエラーでした。
# Error: undefined method `homu' for #<X:0x005564eebeba60> (NoMethodError) :homu.to_proc.call x