class TomlRB::TableArray
def accept_visitor(parser)
def accept_visitor(parser) parser.visit_table_array self end
def full_key
def full_key @dotted_keys.join(".") end
def initialize(dotted_keys)
def initialize(dotted_keys) @dotted_keys = dotted_keys end
def navigate_keys(hash, symbolize_keys = false)
def navigate_keys(hash, symbolize_keys = false) current = hash keys = symbolize_keys ? @dotted_keys.map(&:to_sym) : @dotted_keys last_key = keys.pop # Go over the parent keys keys.each do |key| current[key] = {} unless current[key] if current[key].is_a? Array current[key] << {} if current[key].empty? current = current[key].last else current = current[key] end end # Define Table Array if current[last_key].is_a? Hash fail TomlRB::ParseError, "#{last_key} was defined as hash but is now redefined as a table!" end current[last_key] = [] unless current[last_key] current[last_key] << {} current[last_key].last end