2014年5月30日金曜日

Rubyのinstance_evalヘ(^o^)ノ

昔VBとかやってた。

withとかでこんな感じで書けた
with foo
  .foo_method
end

これをinstance_evalを使ってRubyでやってみようヘ(^o^)ノ

class Foo
def bar
:bar
end
def baz
:baz
end
end
barbaz = :barbaz
foo = Foo.new
foo.instance_eval do
p bar # => :bar
p baz # => :baz
p barbaz # => :barbaz
end

こんな感じでfooを省略できる
foo.bar
foo.baz

インスタンス変数とかを条件に
メソッドコールしたりできるから便利

さらに17行目みたいに、
スコープを越えてローカル変数にアクセスできるのも便利

( ̄(エ) ̄)彡☆

0 件のコメント:

コメントを投稿