class GraphQL::Schema::Object
Attributes
context[R]
@return [GraphQL::Query::Context] the context instance for this query
object[R]
@return [Object] the application object this type is wrapping
Public Class Methods
fields()
click to toggle source
Include legacy-style interfaces, too
Calls superclass method
# File lib/graphql/schema/object.rb, line 85 def fields all_fields = super interfaces.each do |int| if int.is_a?(GraphQL::InterfaceType) int_f = {} int.fields.each do |name, legacy_field| int_f[name] = field_class.from_options(name, field: legacy_field) end all_fields = int_f.merge(all_fields) end end all_fields end
implements(*new_interfaces)
click to toggle source
# File lib/graphql/schema/object.rb, line 60 def implements(*new_interfaces) new_interfaces.each do |int| if int.is_a?(Module) unless int.include?(GraphQL::Schema::Interface) raise "#{int} cannot be implemented since it's not a GraphQL Interface. Use `include` for plain Ruby modules." end # Include the methods here, # `.fields` will use the inheritance chain # to find inherited fields include(int) end end own_interfaces.concat(new_interfaces) end
interfaces()
click to toggle source
# File lib/graphql/schema/object.rb, line 76 def interfaces own_interfaces + (superclass <= GraphQL::Schema::Object ? superclass.interfaces : []) end
kind()
click to toggle source
# File lib/graphql/schema/object.rb, line 117 def kind GraphQL::TypeKinds::OBJECT end
new(object, context)
click to toggle source
# File lib/graphql/schema/object.rb, line 54 def initialize(object, context) @object = object @context = context end
own_interfaces()
click to toggle source
# File lib/graphql/schema/object.rb, line 80 def own_interfaces @own_interfaces ||= [] end
to_graphql()
click to toggle source
@return [GraphQL::ObjectType]
# File lib/graphql/schema/object.rb, line 100 def to_graphql obj_type = GraphQL::ObjectType.new obj_type.name = graphql_name obj_type.description = description obj_type.interfaces = interfaces obj_type.introspection = introspection obj_type.mutation = mutation fields.each do |field_name, field_inst| field_defn = field_inst.to_graphql obj_type.fields[field_defn.name] = field_defn end obj_type.metadata[:type_class] = self obj_type end