1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
module TomlRB
class InlineTable
def initialize(keyvalue_pairs)
@pairs = keyvalue_pairs
end
def accept_visitor(keyvalue)
value keyvalue.symbolize_keys
end
def value(symbolize_keys = false)
result = {}
@pairs.each do |kv|
update = kv.assign({}, [], symbolize_keys)
result.merge!(update) { |key, _, _| fail ValueOverwriteError.new(key) }
end
result
end
end
module InlineTableParser
def value
TomlRB::InlineTable.new(captures[:keyvalue].map(&:value))
end
end
end
|