Class: T::Types::Enum

Inherits:
Base
  • Object
show all
Extended by:
Sig
Defined in:
lib/types/types/enum.rb

Overview

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Sig

sig

Methods inherited from Base

#==, #error_message_for_obj, #error_message_for_obj_recursive, #hash, method_added, #recursively_valid?, #subtype_of?, #to_s, #validate!

Constructor Details

#initialize(values) ⇒ Enum

Returns a new instance of Enum.



11
12
13
14
15
16
17
18
19
# File 'lib/types/types/enum.rb', line 11

def initialize(values)
  case values
  when Hash
    @values = values
  else
    require "set" unless defined?(Set)
    @values = values.to_set
  end
end

Instance Attribute Details

#valuesObject (readonly)

Returns the value of attribute values.



9
10
11
# File 'lib/types/types/enum.rb', line 9

def values
  @values
end

Instance Method Details

#build_typeObject



21
22
23
# File 'lib/types/types/enum.rb', line 21

def build_type
  nil
end

#describe_obj(obj) ⇒ Object

overrides Base



46
47
48
# File 'lib/types/types/enum.rb', line 46

def describe_obj(obj)
  obj.inspect
end

#nameObject

overrides Base



41
42
43
# File 'lib/types/types/enum.rb', line 41

def name
  @name ||= "T.deprecated_enum([#{@values.map(&:inspect).sort.join(', ')}])"
end

#valid?(obj) ⇒ Boolean

overrides Base

Returns:



26
27
28
# File 'lib/types/types/enum.rb', line 26

def valid?(obj)
  @values.member?(obj)
end