C++のusing namespaceみたいなことをやる

ブロック単位でincludeとかサポートされるといいのになー。

#!/usr/bin/env ruby
def using_namespace(*mods, &block)
  ctx = Object.new
  mods.each {|m| ctx.extend(m) }
  ctx.instance_eval(&block)
end

module Foo
  def bar
    puts 'bar'
  end
end

using_namespace(Foo) do
  bar
end

#bar # ここではbar()は未定義