Sha256: a2b5a88d227c1c33e76fc72dfad53618381e90b75b3e59f86a6d1e6245dc55e7

Contents?: true

Size: 633 Bytes

Versions: 8

Compression:

Stored size: 633 Bytes

Contents

module Zapata
  module Primitive
    class Array < Base
      def node
        body = @code
        type = @code.type
        OpenStruct.new(type: type, body: body)
      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::Value.new(raw.value).choose.to_raw
            return_with_super_as_missing(predicted, primitive)
          else
            raw
          end
        end

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

Version data entries

8 entries across 8 versions & 1 rubygems

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