Sha256: 3cb6977ec02b3b836bee15d24f4cd56bc6fa0d94c3dff39582969b43a3b66005
Contents?: true
Size: 1.02 KB
Versions: 2
Compression:
Stored size: 1.02 KB
Contents
module TOML class TableArray def initialize(nested_keys) @nested_keys = nested_keys end def navigate_keys(hash, symbolize_keys = false) last_key = @nested_keys.pop # Go over the parent keys @nested_keys.each do |key| key = symbolize_keys ? key.to_sym : key hash[key] = {} unless hash[key] if hash[key].is_a? Array hash[key] << {} if hash[key].empty? hash = hash[key].last else hash = hash[key] end end # Define Table Array if hash[last_key].is_a? Hash fail TOML::ParseError, "#{last_key} was defined as hash but is now redefined as a table!" end hash[last_key] = [] unless hash[last_key] hash[last_key] << {} hash[last_key].last end def accept_visitor(parser) parser.visit_table_array self end end # Used in document.citrus module TableArrayParser def value TOML::TableArray.new(captures[:stripped_key].map(&:value)) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
toml-rb-0.3.12 | lib/toml/table_array.rb |
toml-rb-0.3.11 | lib/toml/table_array.rb |