Sha256: 61f84b31db25473d2591aab87ae6b4c41fa6482f93f6c419e3eb6e011f692a64
Contents?: true
Size: 956 Bytes
Versions: 1
Compression:
Stored size: 956 Bytes
Contents
module SafeYAML class SyckResolver QUOTE_STYLES = [:quote1, :quote2] def resolve_node(node) case node.value when Hash return resolve_map(node) when Array return resolve_seq(node) when String return resolve_scalar(node) else raise "Don't know how to resolve this node: #{node.inspect}" end end def resolve_map(node) map = node.value hash = {} map.each do |key_node, value_node| if resolve_node(key_node) == "<<" hash.merge!(resolve_node(value_node)) else hash[resolve_node(key_node)] = resolve_node(value_node) end end return hash end def resolve_seq(node) seq = node.value seq.map { |node| resolve_node(node) } end def resolve_scalar(node) Transform.to_proper_type(node.value, QUOTE_STYLES.include?(node.instance_variable_get(:@style))) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
safe_yaml-0.6.2 | lib/safe_yaml/syck_resolver.rb |