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