class GraphQL::Schema::EnumValue

A possible value for an {Enum}.

You can extend this class to customize enum values in your schema.

@example custom enum value class

# define a custom class:
class CustomEnumValue < GraphQL::Schema::EnumValue
  def initialize(*args)
    # arguments to `value(...)` in Enum classes are passed here
    super
  end
end

class BaseEnum < GraphQL::Schema::Enum
  # use it for these enums:
  enum_value_class CustomEnumValue
end

Attributes

graphql_name[R]
owner[R]

@return [Class] The enum type that owns this value

Public Class Methods

new(graphql_name, desc = nil, owner:, ast_node: nil, directives: nil, description: nil, value: nil, deprecation_reason: nil, &block) click to toggle source
# File lib/graphql/schema/enum_value.rb, line 33
def initialize(graphql_name, desc = nil, owner:, ast_node: nil, directives: nil, description: nil, value: nil, deprecation_reason: nil, &block)
  @graphql_name = graphql_name.to_s
  GraphQL::NameValidator.validate!(@graphql_name)
  @description = desc || description
  @value = value.nil? ? @graphql_name : value
  if deprecation_reason
    self.deprecation_reason = deprecation_reason
  end
  @owner = owner
  @ast_node = ast_node
  if directives
    directives.each do |dir_class, dir_options|
      directive(dir_class, **dir_options)
    end
  end

  if block_given?
    instance_eval(&block)
  end
end

Public Instance Methods

accessible?(_ctx) click to toggle source
# File lib/graphql/schema/enum_value.rb, line 73
def accessible?(_ctx); true; end
authorized?(_ctx) click to toggle source
# File lib/graphql/schema/enum_value.rb, line 74
def authorized?(_ctx); true; end
description(new_desc = nil) click to toggle source
# File lib/graphql/schema/enum_value.rb, line 54
def description(new_desc = nil)
  if new_desc
    @description = new_desc
  end
  @description
end
inspect() click to toggle source
# File lib/graphql/schema/enum_value.rb, line 68
def inspect
  "#<#{self.class} #{path} @value=#{@value.inspect}#{description ? " @description=#{description.inspect}" : ""}>"
end
value(new_val = nil) click to toggle source
# File lib/graphql/schema/enum_value.rb, line 61
def value(new_val = nil)
  unless new_val.nil?
    @value = new_val
  end
  @value
end
visible?(_ctx) click to toggle source
# File lib/graphql/schema/enum_value.rb, line 72
def visible?(_ctx); true; end