Sha256: 3cf4894ad35a1ee5b7cf21bbe287378408537167e3a4c6b907c9f12ad2056070

Contents?: true

Size: 541 Bytes

Versions: 9

Compression:

Stored size: 541 Bytes

Contents

module Zapata
  module Primitive
    class Hash < Base
      def node
        body = @code
        type = @code.type
        OpenStruct.new(type: type, body: body)
      end

      def to_a
        value.to_a.flatten
      end

      def to_raw
        result = {}

        node.body.to_a.each do |pair|
          key_node, value_node = pair.to_a
          key = Diver.dive(key_node).to_raw
          value = Diver.dive(value_node).to_raw
          result[key] = value
        end

        Raw.new(:hash, result)
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
zapata-0.1.6 lib/zapata/primitive/hash.rb
zapata-0.1.5 lib/zapata/primitive/hash.rb
zapata-0.1.4 lib/zapata/primitive/hash.rb
zapata-0.1.3 lib/zapata/primitive/hash.rb
zapata-0.1.2 lib/zapata/primitive/hash.rb
zapata-0.1.1 lib/zapata/primitive/hash.rb
zapata-0.1.0 lib/zapata/primitive/hash.rb
zapata-0.0.3 lib/zapata/primitive/hash.rb
zapata-0.0.2 lib/zapata/primitive/hash.rb