Sha256: 61f7133efbcfc94a21203b779ec0fa6f4d2719581d373e825cbcf124bbbb78c6
Contents?: true
Size: 1.01 KB
Versions: 4
Compression:
Stored size: 1.01 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[:key].map(&:value)) end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
toml-rb-0.3.10 | lib/toml/table_array.rb |
toml-rb-0.3.9 | lib/toml/table_array.rb |
toml-rb-0.3.8 | lib/toml/table_array.rb |
toml-rb-0.3.7 | lib/toml/table_array.rb |