Class: GraphQL::RakeTask
- Inherits:
- 
      Object
      
        - Object
- GraphQL::RakeTask
 
- Extended by:
- Rake::DSL
- Includes:
- Rake::DSL
- Defined in:
- lib/graphql/rake_task.rb,
 lib/graphql/rake_task/validate.rb
Overview
A rake task for dumping a schema as IDL or JSON.
By default, schemas are looked up by name as constants using schema_name:.
You can provide a load_schema function to return your schema another way.
load_context:, only: and except: are supported so that
you can keep an eye on how filters affect your schema.
Constant Summary collapse
- DEFAULT_OPTIONS =
- { namespace: "graphql", dependencies: nil, schema_name: nil, load_schema: ->(task) { Object.const_get(task.schema_name) }, load_context: ->(task) { {} }, only: nil, except: nil, directory: ".", idl_outfile: "schema.graphql", json_outfile: "schema.json", } 
Instance Attribute Summary collapse
- 
  
    
      #dependencies  ⇒ Array<String> 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    
- 
  
    
      #directory  ⇒ String 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Directory for IDL & JSON files. 
- 
  
    
      #except  ⇒ <#call(member, ctx)>? 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    A filter for this task. 
- 
  
    
      #idl_outfile  ⇒ String 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Target for IDL task. 
- 
  
    
      #json_outfile  ⇒ String 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Target for JSON task. 
- 
  
    
      #load_context  ⇒ <#call(task)> 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    A callable for loading the query context. 
- 
  
    
      #load_schema  ⇒ <#call(task)> 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    A proc for loading the target GraphQL schema. 
- 
  
    
      #namespace  ⇒ String 
    
    
  
  
  
  
    
    
      writeonly
    
  
  
  
  
  
  
    Namespace for generated tasks. 
- 
  
    
      #only  ⇒ <#call(member, ctx)>? 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    A filter for this task. 
- 
  
    
      #schema_name  ⇒ String 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    By default, used to find the schema as a constant. 
Instance Method Summary collapse
- 
  
    
      #initialize(options = {})  ⇒ RakeTask 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    Set the parameters of this task by passing keyword arguments or assigning attributes inside the block. 
- 
  
    
      #rake_namespace  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Constructor Details
#initialize(options = {}) ⇒ RakeTask
Set the parameters of this task by passing keyword arguments or assigning attributes inside the block
| 78 79 80 81 82 83 84 85 86 87 88 89 | # File 'lib/graphql/rake_task.rb', line 78 def initialize( = {}) = DEFAULT_OPTIONS.merge() .each do |k, v| self.public_send("#{k}=", v) end if block_given? yield(self) end define_task end | 
Instance Attribute Details
#dependencies ⇒ Array<String>
| 49 50 51 | # File 'lib/graphql/rake_task.rb', line 49 def dependencies @dependencies end | 
#directory ⇒ String
Returns directory for IDL & JSON files.
| 74 75 76 | # File 'lib/graphql/rake_task.rb', line 74 def directory @directory end | 
#except ⇒ <#call(member, ctx)>?
Returns A filter for this task.
| 65 66 67 | # File 'lib/graphql/rake_task.rb', line 65 def except @except end | 
#idl_outfile ⇒ String
Returns target for IDL task.
| 68 69 70 | # File 'lib/graphql/rake_task.rb', line 68 def idl_outfile @idl_outfile end | 
#json_outfile ⇒ String
Returns target for JSON task.
| 71 72 73 | # File 'lib/graphql/rake_task.rb', line 71 def json_outfile @json_outfile end | 
#load_context ⇒ <#call(task)>
Returns A callable for loading the query context.
| 59 60 61 | # File 'lib/graphql/rake_task.rb', line 59 def load_context @load_context end | 
#load_schema ⇒ <#call(task)>
Returns A proc for loading the target GraphQL schema.
| 56 57 58 | # File 'lib/graphql/rake_task.rb', line 56 def load_schema @load_schema end | 
#namespace=(value) ⇒ String (writeonly)
Returns Namespace for generated tasks.
| 42 43 44 | # File 'lib/graphql/rake_task.rb', line 42 def namespace=(value) @namespace = value end | 
#only ⇒ <#call(member, ctx)>?
Returns A filter for this task.
| 62 63 64 | # File 'lib/graphql/rake_task.rb', line 62 def only @only end | 
#schema_name ⇒ String
Returns By default, used to find the schema as a constant.
| 53 54 55 | # File 'lib/graphql/rake_task.rb', line 53 def schema_name @schema_name end | 
Instance Method Details
#rake_namespace ⇒ Object
| 44 45 46 | # File 'lib/graphql/rake_task.rb', line 44 def rake_namespace @namespace end |