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