定義されたメソッドが変数にアクセスできるように、Rubyでクロージャーを作成するためのより簡単で読みやすい方法はありますか? m
ここで少し「問題」がありlambda
ます。
多くの場合、ローカル変数にアクセスする必要があるメソッドを動的に定義します。
例えば:
class Comparison
def income
123
end
def sales
42342
end
# and a dozen of other methods
# Generate xxx_after_tax for each method
instance_methods(false).each do |m|
lambda {
define_method("#{m}_after_tax") do
send(m) * 0.9
end
}.call
end
end