class Build::Environment::Evaluator
def initialize(environment)
def initialize(environment) @environment = environment end
def method_missing(name)
def method_missing(name) object_value(@environment[name]) end
def object_value(value)
def object_value(value) case value when Array value.collect{|item| object_value(item)}.flatten when Symbol object_value(@environment[value]) when Proc object_value(instance_exec(&value)) when Default object_value(value.value) when Replace object_value(value.value) else value end end