class GraphQL::Schema::Enum
Public Class Methods
enum_value_class(new_enum_value_class = nil)
click to toggle source
@return [Class] for handling `value(…)` inputs and building `GraphQL::Enum::EnumValue`s out of them
# File lib/graphql/schema/enum.rb, line 64 def enum_value_class(new_enum_value_class = nil) if new_enum_value_class @enum_value_class = new_enum_value_class end @enum_value_class || (superclass <= GraphQL::Schema::Enum ? superclass.enum_value_class : nil) end
kind()
click to toggle source
# File lib/graphql/schema/enum.rb, line 71 def kind GraphQL::TypeKinds::ENUM end
to_graphql()
click to toggle source
@return [GraphQL::EnumType]
# File lib/graphql/schema/enum.rb, line 51 def to_graphql enum_type = GraphQL::EnumType.new enum_type.name = graphql_name enum_type.description = description enum_type.introspection = introspection values.each do |name, val| enum_type.add_value(val.to_graphql) end enum_type.metadata[:type_class] = self enum_type end
value(*args, **kwargs, &block)
click to toggle source
Define
a value for this enum @param graphql_name [String, Symbol] the GraphQL
value for this, usually `SCREAMING_CASE` @param description [String], the GraphQL
description for this value, present in documentation @param value [Object], the translated Ruby value for this object (defaults to `graphql_name`) @param deprecation_reason [String] if this object is deprecated, include a message here @return [void] @see {Schema::EnumValue} which handles these inputs by default
# File lib/graphql/schema/enum.rb, line 36 def value(*args, **kwargs, &block) kwargs[:owner] = self value = enum_value_class.new(*args, **kwargs, &block) own_values[value.graphql_name] = value nil end
values()
click to toggle source
@return [Hash<String => GraphQL::Schema::Enum::Value>] Possible values of this enum, keyed by name
# File lib/graphql/schema/enum.rb, line 44 def values inherited_values = superclass <= GraphQL::Schema::Enum ? superclass.values : {} # Local values take precedence over inherited ones inherited_values.merge(own_values) end
Private Class Methods
own_values()
click to toggle source
# File lib/graphql/schema/enum.rb, line 77 def own_values @own_values ||= {} end