class GraphqlRails::Attributes::InputAttribute

contains info about single graphql input attribute

Attributes

description[R]
initial_name[R]
initial_type[R]
options[R]
subtype[R]

Public Class Methods

new(name, type: nil, description: nil, subtype: nil, required: nil, options: {}) click to toggle source

rubocop:disable Metrics/ParameterLists

# File lib/graphql_rails/attributes/input_attribute.rb, line 14
def initialize(name, type: nil, description: nil, subtype: nil, required: nil, options: {})
  @initial_name = name
  @initial_type = type
  @description = description
  @options = options
  @subtype = subtype
  @required = required
end

Public Instance Methods

input_argument_args() click to toggle source

rubocop:enable Metrics/ParameterLists

# File lib/graphql_rails/attributes/input_attribute.rb, line 24
def input_argument_args
  type = raw_input_type || input_type_parser.input_type_arg

  [field_name, type]
end
input_argument_options() click to toggle source
# File lib/graphql_rails/attributes/input_attribute.rb, line 30
def input_argument_options
  { required: required?, description: description, camelize: false }
end
paginated?() click to toggle source
# File lib/graphql_rails/attributes/input_attribute.rb, line 34
def paginated?
  false
end

Private Instance Methods

attribute_name_parser() click to toggle source
# File lib/graphql_rails/attributes/input_attribute.rb, line 42
def attribute_name_parser
  @attribute_name_parser ||= AttributeNameParser.new(
    initial_name, options: attribute_naming_options
  )
end
attribute_naming_options() click to toggle source
# File lib/graphql_rails/attributes/input_attribute.rb, line 48
def attribute_naming_options
  options.slice(:input_format)
end
input_type_parser() click to toggle source
# File lib/graphql_rails/attributes/input_attribute.rb, line 52
def input_type_parser
  @input_type_parser ||= begin
    initial_parseable_type = initial_type || attribute_name_parser.graphql_type
    InputTypeParser.new(initial_parseable_type, subtype: subtype)
  end
end
raw_input_type() click to toggle source
# File lib/graphql_rails/attributes/input_attribute.rb, line 59
def raw_input_type
  return initial_type if initial_type.is_a?(GraphQL::InputObjectType)
  return initial_type.graphql_input_type if initial_type.is_a?(Model::Input)
end