class T::Types::Enum

validates that the provided value is within a given set/enum

Attributes

values[R]

Public Class Methods

new(values) click to toggle source
# File lib/types/types/enum.rb, line 13
def initialize(values)
  @values = values
end

Public Instance Methods

describe_obj(obj) click to toggle source

@override Base

# File lib/types/types/enum.rb, line 38
def describe_obj(obj)
  obj.inspect
end
name() click to toggle source

@override Base

# File lib/types/types/enum.rb, line 33
def name
  "T.enum([#{@values.map(&:inspect).join(', ')}])"
end
valid?(obj) click to toggle source

@override Base

# File lib/types/types/enum.rb, line 18
def valid?(obj)
  @values.member?(obj)
end

Private Instance Methods

subtype_of_single?(other) click to toggle source

@override Base

# File lib/types/types/enum.rb, line 23
        def subtype_of_single?(other)
  case other
  when Enum
    (other.values - @values).empty?
  else
    false
  end
end