Class: GraphQL::Schema::Printer
- Inherits:
 - 
      Language::Printer
      
        
- Object
 - Language::Printer
 - GraphQL::Schema::Printer
 
 
- Defined in:
 - lib/graphql/schema/printer.rb
 
Overview
Used to convert your GraphQL::Schema to a GraphQL schema string
Defined Under Namespace
Classes: IntrospectionPrinter
Constant Summary
Constants inherited from Language::Printer
Instance Attribute Summary collapse
- 
  
    
      #schema  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute schema.
 - 
  
    
      #warden  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute warden.
 
Class Method Summary collapse
- 
  
    
      .print_introspection_schema  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Return the GraphQL schema string for the introspection type system.
 - 
  
    
      .print_schema(schema, **args)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Return a GraphQL schema string for the defined types in the schema.
 
Instance Method Summary collapse
- 
  
    
      #initialize(schema, context: nil, introspection: false)  ⇒ Printer 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
A new instance of Printer.
 - 
  
    
      #print_schema  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Return a GraphQL schema string for the defined types in the schema.
 - 
  
    
      #print_type(type)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
 
Methods inherited from Language::Printer
Constructor Details
#initialize(schema, context: nil, introspection: false) ⇒ Printer
Returns a new instance of Printer.
      40 41 42 43 44 45 46 47 48 49  | 
    
      # File 'lib/graphql/schema/printer.rb', line 40 def initialize(schema, context: nil, introspection: false) @document_from_schema = GraphQL::Language::DocumentFromSchemaDefinition.new( schema, context: context, include_introspection_types: introspection, ) @document = @document_from_schema.document @schema = schema end  | 
  
Instance Attribute Details
#schema ⇒ Object (readonly)
Returns the value of attribute schema.
      35 36 37  | 
    
      # File 'lib/graphql/schema/printer.rb', line 35 def schema @schema end  | 
  
#warden ⇒ Object (readonly)
Returns the value of attribute warden.
      35 36 37  | 
    
      # File 'lib/graphql/schema/printer.rb', line 35 def warden @warden end  | 
  
Class Method Details
.print_introspection_schema ⇒ Object
Return the GraphQL schema string for the introspection type system
      52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74  | 
    
      # File 'lib/graphql/schema/printer.rb', line 52 def self.print_introspection_schema query_root = Class.new(GraphQL::Schema::Object) do graphql_name "Root" field :throwaway_field, String def self.visible?(ctx) false end end schema = Class.new(GraphQL::Schema) { query(query_root) def self.visible?(member, _ctx) member.graphql_name != "Root" end } introspection_schema_ast = GraphQL::Language::DocumentFromSchemaDefinition.new( schema, include_introspection_types: true, include_built_in_directives: true, ).document introspection_schema_ast.to_query_string(printer: IntrospectionPrinter.new) end  | 
  
.print_schema(schema, **args) ⇒ Object
Return a GraphQL schema string for the defined types in the schema
      81 82 83 84  | 
    
      # File 'lib/graphql/schema/printer.rb', line 81 def self.print_schema(schema, **args) printer = new(schema, **args) printer.print_schema end  | 
  
Instance Method Details
#print_schema ⇒ Object
Return a GraphQL schema string for the defined types in the schema
      87 88 89  | 
    
      # File 'lib/graphql/schema/printer.rb', line 87 def print_schema print(@document) + "\n" end  | 
  
#print_type(type) ⇒ Object
      91 92 93 94  | 
    
      # File 'lib/graphql/schema/printer.rb', line 91 def print_type(type) node = @document_from_schema.build_type_definition_node(type) print(node) end  |