lib/toml/keyvalue.rb



module TOML
  class ValueOverwriteError < StandardError; end

  class Keyvalue
    def initialize(key, value)
      @key, @value = key, value
    end

    def assign(hash, symbolize_keys = false)
      raise ValueOverwriteError if hash[@key]

      key = symbolize_keys ? @key.to_sym : @key
      hash[key] = @value
    end
  end
end

# Used in toml.citrus
module Keyvalue
  def value
    TOML::Keyvalue.new(key.value, v.value)
  end
end