Sha256: 44e1f747ce3e839d43282539b63e8975cdff15aec7a43db47719187897cab562

Contents?: true

Size: 744 Bytes

Versions: 1

Compression:

Stored size: 744 Bytes

Contents

# frozen_string_literal: true

module Zapata
  module Primitive
    class Base
      attr_accessor :code, :type

      def initialize(code)
        @code = code
        @type = code.type
      end

      def name
        SaveManager.clean(node.name)
      end

      def dive_deeper
        return if RETURN_TYPES.include?(node.type)

        Diver.dive(node.args)
        Diver.dive(node.body)
      end

      def to_raw
        Diver.dive(node.body).to_raw
      end

      def return_with_super_as_missing(raw, primitive)
        raw.type == :super ? Missing.new(primitive.name).to_raw : raw
      end

      def return_with_missing_as_super(raw, name)
        raw.type == :missing ? Raw.new(:super, name) : raw
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
zapata-1.0.0 lib/zapata/primitive/base.rb