for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
# frozen_string_literal: true
require_relative '../mixin/errors'
module AMA
module Entity
class Mapper
class Type
# This class represents parameter type - an unknown-until-runtime type
# that belongs to particular other type. For example,
# Hash<Symbol, Integer> may be described as Type(Hash) with
# parameters _key: Symbol and _value: Integer
class Parameter
include Mixin::Errors
# @!attribute type
# @return [AMA::Entity::Mapper::Type]
attr_reader :owner
# @!attribute id
# @return [Symbol]
attr_reader :id
# @param [AMA::Entity::Mapper::Type] owner
# @param [Symbol] id
def initialize(owner, id)
@owner = owner
@id = id
end
def instance?(_)
false
def resolve_parameter(*)
self
def resolved?
def resolved!(context = nil)
compliance_error("Type #{self} is not resolved", context: context)
def to_s
"Parameter #{owner.type}.#{id}"
def to_def
"#{owner.type}.#{id}"
def hash
@owner.hash ^ @id.hash
def eql?(other)
return false unless other.is_a?(self.class)
@id == other.id && @owner == other.owner
def ==(other)
eql?(other)