class AstTraverser
def flatten_pairs(pair, prefix: "")
def flatten_pairs(pair, prefix: "") pair.value.pairs.each_with_object({}) do |value_pair, h| if value_pair.value.type == :hash h.merge!(flatten_pairs(value_pair, prefix: "#{prefix}#{value_pair.key.value}-")) else h["#{prefix}#{value_pair.key.value}"] = value_pair.value.source end end end