Sha256: 347b4d2b8c9e62bd1ccac01df976c551542fdd6f22bde31ab59ca0d7b0b43e3c
Contents?: true
Size: 994 Bytes
Versions: 19
Compression:
Stored size: 994 Bytes
Contents
require 'forwardable' module Kafo module DataTypes class Optional < DataType extend Forwardable def_delegators :@inner_type, :condition_value, :dump_default, :multivalued?, :typecast attr_reader :inner_type, :inner_value def initialize(inner_type_or_value) begin @inner_type = DataType.new_from_string(inner_type_or_value) @inner_value = nil rescue ConfigurationException @inner_type = nil @inner_value = inner_type_or_value end end def to_s if @inner_type "#{@inner_type} or undef" else "#{@inner_value.inspect} or undef" end end def valid?(input, errors = []) return true if input.nil? return true if @inner_type && @inner_type.valid?(input, errors) return true if @inner_value && @inner_value == input return false end end DataType.register_type('Optional', Optional) end end
Version data entries
19 entries across 19 versions & 1 rubygems