Class: ArSerializer::GraphQL::SchemaClass
- Inherits:
-
Object
- Object
- ArSerializer::GraphQL::SchemaClass
- Includes:
- Serializable
- Defined in:
- lib/ar_serializer/graphql/types.rb
Instance Attribute Summary collapse
-
#klass ⇒ Object
readonly
Returns the value of attribute klass.
-
#query_type ⇒ Object
readonly
Returns the value of attribute query_type.
Instance Method Summary collapse
- #collect_types ⇒ Object
-
#initialize(klass) ⇒ SchemaClass
constructor
A new instance of SchemaClass.
- #types ⇒ Object
Constructor Details
#initialize(klass) ⇒ SchemaClass
Returns a new instance of SchemaClass.
66 67 68 69 |
# File 'lib/ar_serializer/graphql/types.rb', line 66 def initialize(klass) @klass = klass @query_type = SerializableTypeClass.new klass end |
Instance Attribute Details
#klass ⇒ Object (readonly)
Returns the value of attribute klass.
65 66 67 |
# File 'lib/ar_serializer/graphql/types.rb', line 65 def klass @klass end |
#query_type ⇒ Object (readonly)
Returns the value of attribute query_type.
65 66 67 |
# File 'lib/ar_serializer/graphql/types.rb', line 65 def query_type @query_type end |
Instance Method Details
#collect_types ⇒ Object
71 72 73 74 75 76 77 78 79 80 |
# 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 ⇒ Object
82 83 84 85 |
# 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 |