Sha256: 8022f627ad47ae86eee7aafb5a00372f2e3c8ba553de3ca96c992510480c367e

Contents?: true

Size: 751 Bytes

Versions: 1

Compression:

Stored size: 751 Bytes

Contents

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

      def dive_deeper
      end

      def to_a
        value
      end

      def to_raw
        value = node.body.to_a.map do |node|
          primitive = Diver.dive(node)
          raw = primitive.to_raw

          if raw.type == :super
            predicted = Predictor::Args.choose_value(raw.value).to_raw

            if predicted.type == :super
              Missing.new(primitive.name).to_raw
            else
              predicted
            end
          else
            raw
          end
        end

        Raw.new(:array, value)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
zapata-0.0.1 lib/zapata/primitive/array.rb