# File lib/bee.rb, line 667
    def evaluate_object(object)
      case object
      when NilClass
        # nil: return nil
        return nil
      when String
        # string: replace property references
        object = object.gsub(/#\{.+?\}/) do |match|
          property = match[2..-2]
          value = get_property(property)
          error "Property '#{property}' was not defined" unless value
          value
        end
        return object 
      when Symbol
        # symbol: return property object
        property = object.to_s
        value = get_property(property, true)
        return evaluate_object(value)
      when Array
        # array: evaluate each element
        return object.collect { |element| evaluate_object(element) }
      when Hash
        # hash: evaluate all keys and values
        evaluated = {}
        object.each_pair do |key, value| 
          evaluated[evaluate_object(key)] = evaluate_object(value)
        end
        return evaluated
      else
        return object
      end
    end