lib/egi/sandbox.rb in egi-0.0.1 vs lib/egi/sandbox.rb in egi-0.0.2

- old
+ new

@@ -11,11 +11,18 @@ def env(name, opts = {}, &block) name = name.to_sym @current_env = name to_load = opts[:load] - envs[name].merge!(envs[to_load]) if envs.has_key?(to_load) - envs[name].instance_eval(&block) if block_given? + env = envs[name] + env.merge!(envs[to_load]) if envs.has_key?(to_load) + env.instance_eval(&block) if block_given? + + # define method_missing to access item + def env.method_missing(name, *args) + raise MethodMissing if args.size > 0 + items.has_key?(name) ? items[name] : nil + end end def eval(str) instance_eval(str) envs