def evaluate_blueprint(blueprint_name, env)
      raise "'env' must be a String or an Environment." \
        unless env.is_a?(String) || env.is_a?(Environments::Environment)

      if env.is_a?(String)
        env = environment(env)
      end

      ev = Amigrind::Blueprints::Evaluator.new(File.join(blueprints_path,
                                                         "#{blueprint_name}.rb"),
                                               env)

      ev.blueprint
    end
def evaluate_blueprint(blueprint_name, env)
      raise "'env' must be a String or an Environment." \
        unless env.is_a?(String) || env.is_a?(Environments::Environment)

      if env.is_a?(String)
        env = environment(env)
      end

      ev = Amigrind::Blueprints::Evaluator.new(File.join(blueprints_path,
                                                         "#{blueprint_name}.rb"),
                                               env)

      ev.blueprint
    end
TODO: cache blueprint/environment tuples (but make configurable)