class ArSerializer::GraphQL::SchemaClass

Attributes

klass[R]
query_type[R]

Public Class Methods

new(klass) click to toggle source
# File lib/ar_serializer/graphql/types.rb, line 66
def initialize(klass)
  @klass = klass
  @query_type = SerializableTypeClass.new klass
end

Public Instance Methods

collect_types() click to toggle source
# File lib/ar_serializer/graphql/types.rb, line 71
def collect_types
  types = {}
  klass._serializer_field_keys.each do |name|
    fc = FieldClass.new name, klass._serializer_field_info(name)
    fc.collect_types types
  end
  type_symbols, type_classes = types.keys.partition { |t| t.is_a? Symbol }
  type_classes << TypeClass.from(klass)
  [type_symbols.sort, type_classes.sort_by(&:name)]
end
types() click to toggle source
# File lib/ar_serializer/graphql/types.rb, line 82
def types
  types_symbols, klass_types = collect_types
  types_symbols.map { |t| ScalarTypeClass.new t } + klass_types
end