Class: GraphQL::EnumType
  
  
  
  
Defined Under Namespace
  
    
  
    
      Classes: EnumValue, UnresolvedValueError
    
  
  Instance Attribute Summary collapse
  
  
  
  Attributes inherited from BaseType
  #default_relay, #default_scalar, #description, #introspection, #name
  
    
      Instance Method Summary
      collapse
    
    
  
  
  
  
  
  
  
  
  
  
  define
  
  
  
  
  
  
  
  
  Methods inherited from BaseType
  #==, #coerce_input, #coerce_isolated_input, #coerce_isolated_result, #default_relay?, #default_scalar?, #get_field, #graphql_definition, #introspection?, #list?, #non_null?, resolve_related_type, #resolve_type, #to_definition, #to_list_type, #to_non_null_type, #type_class, #unwrap, #valid_input?, #valid_isolated_input?, #validate_input, #validate_isolated_input
  
  
  
  
  
  
  
  
  
  #connection_type, #define_connection, #define_edge, #edge_type
  
  
  
  
  
  
  
  
  
  #define, #deprecated_define, #metadata, #redefine
  
  
  
  
  
  
  
  
  
  #!
  Constructor Details
  
    
  
  
    Returns a new instance of EnumType.
   
 
  
  
    | 
11
12
13
14 | # File 'lib/graphql/enum_type.rb', line 11
def initialize
  super
  @values_by_name = {}
end | 
 
  
 
  
    Instance Attribute Details
    
      
      
      
  
  
    #ast_node  ⇒ Object 
  
  
  
  
  
    | 
9
10
11 | # File 'lib/graphql/enum_type.rb', line 9
def ast_node
  @ast_node
end | 
 
    
   
  
    Instance Method Details
    
      
  
  
    #add_value(enum_value)  ⇒ Object 
  
  
  
  
    | 
28
29
30
31
32
33
34 | # File 'lib/graphql/enum_type.rb', line 28
def add_value(enum_value)
  if @values_by_name.key?(enum_value.name)
    raise "Enum value names must be unique. Value `#{enum_value.name}` already exists on Enum `#{name}`."
  end
  @values_by_name[enum_value.name] = enum_value
end | 
 
    
      
  
  
    #coerce_result(value, ctx = nil)  ⇒ Object 
  
  
  
  
  
    | 
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 | # File 'lib/graphql/enum_type.rb', line 49
def coerce_result(value, ctx = nil)
  if ctx.nil?
    warn_deprecated_coerce("coerce_isolated_result")
    ctx = GraphQL::Query::NullContext
  end
  warden = ctx.warden
  all_values = warden ? warden.enum_values(self) : @values_by_name.each_value
  enum_value = all_values.find { |val| val.value == value }
  if enum_value
    enum_value.name
  else
    raise(UnresolvedValueError, "Can't resolve enum #{name} for #{value.inspect}")
  end
end | 
 
    
      
  
  
    #enum_values(_context = nil)  ⇒ Object 
  
  
  
  
  
    | 
41
42
43 | # File 'lib/graphql/enum_type.rb', line 41
def enum_values(_context = nil)
  values.values
end | 
 
    
      
  
  
    #initialize_copy(other)  ⇒ Object 
  
  
  
  
  
    | 
16
17
18
19 | # File 'lib/graphql/enum_type.rb', line 16
def initialize_copy(other)
  super
  self.values = other.values.values
end | 
 
    
      
  
  
    #kind  ⇒ Object 
  
  
  
  
  
    | 
45
46
47 | # File 'lib/graphql/enum_type.rb', line 45
def kind
  GraphQL::TypeKinds::ENUM
end | 
 
    
      
  
  
    #to_s  ⇒ Object 
  
  
  
  
  
    | 
65
66
67 | # File 'lib/graphql/enum_type.rb', line 65
def to_s
  name
end | 
 
    
      
  
  
    #values(_context = nil)  ⇒ Hash<String => EnumValue> 
  
  
  
  
    Returns {name => value} pairs contained in this type.
   
 
  
    | 
37
38
39 | # File 'lib/graphql/enum_type.rb', line 37
def values(_context = nil)
  @values_by_name
end | 
 
    
      
  
  
    #values=(new_values)  ⇒ Object 
  
  
  
  
    | 
22
23
24
25 | # File 'lib/graphql/enum_type.rb', line 22
def values=(new_values)
  @values_by_name = {}
  new_values.each { |enum_value| add_value(enum_value) }
end |