class Moguro::DataTypeClause

Attributes

key[R]

Public Class Methods

new(key) click to toggle source
# File lib/moguro/caluse.rb, line 7
def initialize(key)
  @types = []
  @key = key
end

Public Instance Methods

add_type(type) click to toggle source
# File lib/moguro/caluse.rb, line 12
def add_type(type)
  @types << type
end
inspect() click to toggle source
# File lib/moguro/caluse.rb, line 33
def inspect
  "#{key}: #{type_inspect}"
end
pop_type() click to toggle source
# File lib/moguro/caluse.rb, line 16
def pop_type
  @types.pop
end
type_inspect() click to toggle source
# File lib/moguro/caluse.rb, line 28
def type_inspect
  klasses = types.map(&:type)
  "(#{klasses.join('|')})"
end
types() click to toggle source
# File lib/moguro/caluse.rb, line 20
def types
  if @types.empty?
    [Moguro::Types::Any.new]
  else
    @types
  end
end
verify!(val) click to toggle source
# File lib/moguro/caluse.rb, line 37
def verify!(val)
  return if types.empty?
  raise Moguro::Errors::TypeMismatchError.new(self, val) if types.none? { |c| c.valid?(val) }
end