Class: GraphQL::EnumType
Overview
A finite set of possible values, represented in query strings with SCREAMING_CASE_NAMES
Defined Under Namespace
Classes: EnumValue
Instance Attribute Summary
Attributes inherited from BaseType
Instance Method Summary collapse
- #add_value(enum_value) ⇒ Object
-
#coerce_non_null_input(value_name) ⇒ Object
Get the underlying value for this enum value.
- #coerce_result(value) ⇒ Object
-
#initialize ⇒ EnumType
constructor
A new instance of EnumType.
- #kind ⇒ Object
- #to_s ⇒ Object
- #validate_non_null_input(value_name) ⇒ Object
-
#value(name, description = nil, deprecation_reason: nil, value: name) ⇒ Object
deprecated
Deprecated.
use define API instead
- #values ⇒ Object
- #values=(values) ⇒ Object
Methods inherited from BaseType
#==, #coerce_input, #resolve_type, #to_list_type, #to_non_null_type, #unwrap, #valid_input?, #validate_input
Methods included from Define::InstanceDefinable
Methods included from Define::NonNullWithBang
Constructor Details
#initialize ⇒ EnumType
Returns a new instance of EnumType.
17 18 19 20 |
# File 'lib/graphql/enum_type.rb', line 17 def initialize @values_by_name = {} @values_by_value = {} end |
Instance Method Details
#add_value(enum_value) ⇒ Object
28 29 30 31 |
# File 'lib/graphql/enum_type.rb', line 28 def add_value(enum_value) @values_by_name[enum_value.name] = enum_value @values_by_value[enum_value.value] = enum_value end |
#coerce_non_null_input(value_name) ⇒ Object
Get the underlying value for this enum value
69 70 71 72 |
# File 'lib/graphql/enum_type.rb', line 69 def coerce_non_null_input(value_name) return nil unless @values_by_name.key?(value_name) @values_by_name.fetch(value_name).value end |
#coerce_result(value) ⇒ Object
74 75 76 |
# File 'lib/graphql/enum_type.rb', line 74 def coerce_result(value) @values_by_value.fetch(value).name end |
#kind ⇒ Object
47 48 49 |
# File 'lib/graphql/enum_type.rb', line 47 def kind GraphQL::TypeKinds::ENUM end |
#to_s ⇒ Object
78 79 80 |
# File 'lib/graphql/enum_type.rb', line 78 def to_s name end |
#validate_non_null_input(value_name) ⇒ Object
51 52 53 54 55 56 57 58 59 |
# File 'lib/graphql/enum_type.rb', line 51 def validate_non_null_input(value_name) result = GraphQL::Query::InputValidationResult.new if !@values_by_name.key?(value_name) result.add_problem("Expected #{JSON.dump(value_name)} to be one of: #{@values_by_name.keys.join(', ')}") end result end |
#value(name, description = nil, deprecation_reason: nil, value: name) ⇒ Object
Deprecated.
use define API instead
Define a value within this enum
43 44 45 |
# File 'lib/graphql/enum_type.rb', line 43 def value(name, description=nil, deprecation_reason: nil, value: name) values[name] = EnumValue.new(name: name, description: description, deprecation_reason: deprecation_reason, value: value) end |
#values ⇒ Object
33 34 35 |
# File 'lib/graphql/enum_type.rb', line 33 def values @values_by_name end |
#values=(values) ⇒ Object
22 23 24 25 26 |
# File 'lib/graphql/enum_type.rb', line 22 def values=(values) @values_by_name = {} @values_by_value = {} values.each { |enum_value| add_value(enum_value) } end |