class GraphQL::Client::Schema::EnumType
def [](value)
def [](value) @values[value] end
def cast(value, _errors = nil)
errors - Errors instance
values - JSON value
with the convenience predicate methods.
Internal: Cast JSON value to the enumeration's corresponding constant string instance
def cast(value, _errors = nil) case value when String if @values.key?(value) @values[value] elsif schema_module.raise_on_unknown_enum_value raise Error, "unexpected enum value #{value}" else UnexpectedEnumValue.new(value).freeze end when NilClass value else raise InvariantError, "expected value to be a String, but was #{value.class}" end end
def define_class(definition, ast_nodes)
def define_class(definition, ast_nodes) self end
def initialize(type)
Internal: Construct enum wrapper from another GraphQL::EnumType.
def initialize(type) unless type.kind.enum? raise "expected type to be an Enum, but was #{type.class}" end @type = type @values = {} all_values = type.values.keys comparison_set = all_values.map { |s| -s.downcase }.to_set all_values.each do |value| str = EnumValue.new(-value, -value.downcase, comparison_set).freeze const_set(value, str) if value =~ /^[A-Z]/ @values[str.to_s] = str end @values.freeze end