class Snuffle::Element::Hash

Attributes

node[RW]

Public Class Methods

materialize(nodes=[]) click to toggle source
# File lib/snuffle/elements/hash.rb, line 9
def self.materialize(nodes=[])
  nodes.each.map{|hash_node| new(hash_node) }.select{|h| h.pairs.present?}
end
new(node) click to toggle source
# File lib/snuffle/elements/hash.rb, line 13
def initialize(node)
  self.node = node
end

Public Instance Methods

inspect() click to toggle source
# File lib/snuffle/elements/hash.rb, line 29
def inspect
  pairs
end
keys() click to toggle source
# File lib/snuffle/elements/hash.rb, line 21
def keys
  node.children.map{ |child| child.children.first && child.children.first.name }
end
pairs() click to toggle source
# File lib/snuffle/elements/hash.rb, line 17
def pairs
  @pairs ||= keys.zip(values).inject({}){|hash, pair| hash[pair[0]] = pair[1]; hash}
end
values() click to toggle source
# File lib/snuffle/elements/hash.rb, line 25
def values
  node.children.map{ |child| child.children.last && child.children.last.name }.map(&:to_s).sort
end