Sha256: 098029fdb8bafb5ff28d6a06f4282f9ac658a145b53d5de37caaca08f5612518

Contents?: true

Size: 969 Bytes

Versions: 6

Compression:

Stored size: 969 Bytes

Contents

require 'forwardable'

module Kafo
  module DataTypes
    class NotUndef < 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)
        @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

      def to_s
        if @inner_type
          "#{@inner_type} but not undef"
        else
          "#{@inner_value.inspect} but not undef"
        end
      end

      def valid?(input, errors = [])
        return false 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('NotUndef', NotUndef)
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
kafo-7.6.0 lib/kafo/data_types/not_undef.rb
kafo-7.5.1 lib/kafo/data_types/not_undef.rb
kafo-7.5.0 lib/kafo/data_types/not_undef.rb
kafo-7.4.0 lib/kafo/data_types/not_undef.rb
kafo-7.3.0 lib/kafo/data_types/not_undef.rb
kafo-7.2.0 lib/kafo/data_types/not_undef.rb