def ingest!(json_string)
      return if json_string.empty?
      res = Jsonify::Generate.value(MultiJson.load(json_string))
      current = @stack[@level]
      if current.nil?
        @stack[@level] = res
      elsif JsonObject === current
        if JsonObject === res
          @stack[@level].merge res
        else 
          raise ArgumentError.new("Cannot add JSON array to JSON Object")
        end
      else # current is JsonArray
        @stack[@level].add res
      end
    end
def ingest!(json_string)
      return if json_string.empty?
      res = Jsonify::Generate.value(MultiJson.load(json_string))
      current = @stack[@level]
      if current.nil?
        @stack[@level] = res
      elsif JsonObject === current
        if JsonObject === res
          @stack[@level].merge res
        else 
          raise ArgumentError.new("Cannot add JSON array to JSON Object")
        end
      else # current is JsonArray
        @stack[@level].add res
      end
    end
Ingest a full JSON representation (either an oject or array)
 into the builder. The value is parsed, objectified, and added to the
 current value at the top of the stack.

 @param [String] json_string a full JSON string (e.g. from a rendered partial)