lib/toml/keyvalue.rb
module TOML class ValueOverwriteError < StandardError; end class Keyvalue attr_reader :key, :value def initialize(key, value) @key, @value = key, value end def assign(hash, symbolize_keys = false) key = symbolize_keys ? @key.to_sym : @key fail ValueOverwriteError if hash[key] hash[key] = @value end def accept_visitor(parser) parser.visit_keyvalue self end end end # Used in document.citrus module Keyvalue def value TOML::Keyvalue.new(capture(:key).value, capture(:v).value) end end