Slide 13
Slide 13 text
そもそも
そもそも
ブロック内のコンテキストが変わってしまうのは instance_eval
を使
ったときでも同じ
ブロック内で self
が変わってしまうことはよくある
なので Proc#using
で呼び出されるメソッドが意図しない云々は今更
感がある
どうしても気になるなら Proc#using
を使って便利メソッドを定義す
ればいい
# Proc#using
を使ったヘルパメソッドを定義してやる
def using_local(mod, &block)
block.using mod
block.call
end
using Proc::Refinements
#
モジュールを渡して using
を明⽰化する
using_local(Twice) {
p "homu".twice
}