class Grape::Util::InheritableValues

def [](name)

def [](name)
  return @inherited_values[name] unless @new_values
  @new_values.fetch(name) { @inherited_values[name] }
end

def []=(name, value)

def []=(name, value)
  (@new_values ||= {})[name] = value
end

def merge(new_hash)

def merge(new_hash)
  values.merge!(new_hash)
end

def to_hash

def to_hash
  values
end

def values

def values
  return @inherited_values.merge(@new_values) if @new_values && !@new_values.empty?
  @inherited_values.is_a?(Hash) ? @inherited_values.dup : @inherited_values.to_hash
end