Class: GraphQL::GraphQLField

Inherits:
Configuration::Configurable show all
Defined in:
lib/graphql/type/field.rb

Overview

GraphQLField

Constant Summary collapse

DEFAULT_RESOLVE =
lambda { |name|
  lambda { |object|
    object.public_send(name)
  }
}

Instance Method Summary collapse

Methods inherited from Configuration::Configurable

configuration, configure_with, #initialize, #method_missing, new

Constructor Details

This class inherits a constructor from GraphQL::Configuration::Configurable

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class GraphQL::Configuration::Configurable

Instance Method Details

#arg(name) ⇒ Object



41
42
43
# File 'lib/graphql/type/field.rb', line 41

def arg(name)
  arg_map(name.to_sym)
end

#arg_mapObject



29
30
31
# File 'lib/graphql/type/field.rb', line 29

def arg_map
  @arg_map ||= @configuration.args.reduce({}) { |memo, arg| memo[arg.name.to_sym] = arg ; memo }
end

#arg_namesObject



33
34
35
# File 'lib/graphql/type/field.rb', line 33

def arg_names
  @arg_names ||= arg_map.keys
end

#argsObject



37
38
39
# File 'lib/graphql/type/field.rb', line 37

def args
  @args ||= arg_map.values
end

#resolveObject



45
46
47
# File 'lib/graphql/type/field.rb', line 45

def resolve
  @resolve ||= @configuration.resolve || DEFAULT_RESOLVE.call(name)
end

#typeObject



25
26
27
# File 'lib/graphql/type/field.rb', line 25

def type
  @type ||= @configuration.type.is_a?(Proc) ? @configuration.type.call : @configuration.type
end