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
79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/graphql/rake_task.rb', line 79 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>
50 51 52 |
# File 'lib/graphql/rake_task.rb', line 50 def dependencies @dependencies end |
#directory ⇒ String
Returns directory for IDL & JSON files.
75 76 77 |
# File 'lib/graphql/rake_task.rb', line 75 def directory @directory end |
#except ⇒ <#call(member, ctx)>?
Returns A filter for this task.
66 67 68 |
# File 'lib/graphql/rake_task.rb', line 66 def except @except end |
#idl_outfile ⇒ String
Returns target for IDL task.
69 70 71 |
# File 'lib/graphql/rake_task.rb', line 69 def idl_outfile @idl_outfile end |
#json_outfile ⇒ String
Returns target for JSON task.
72 73 74 |
# File 'lib/graphql/rake_task.rb', line 72 def json_outfile @json_outfile end |
#load_context ⇒ <#call(task)>
Returns A callable for loading the query context.
60 61 62 |
# File 'lib/graphql/rake_task.rb', line 60 def load_context @load_context end |
#load_schema ⇒ <#call(task)>
Returns A proc for loading the target GraphQL schema.
57 58 59 |
# File 'lib/graphql/rake_task.rb', line 57 def load_schema @load_schema end |
#namespace=(value) ⇒ String (writeonly)
Returns Namespace for generated tasks.
43 44 45 |
# File 'lib/graphql/rake_task.rb', line 43 def namespace=(value) @namespace = value end |
#only ⇒ <#call(member, ctx)>?
Returns A filter for this task.
63 64 65 |
# File 'lib/graphql/rake_task.rb', line 63 def only @only end |
#schema_name ⇒ String
Returns By default, used to find the schema as a constant.
54 55 56 |
# File 'lib/graphql/rake_task.rb', line 54 def schema_name @schema_name end |
Instance Method Details
#rake_namespace ⇒ Object
45 46 47 |
# File 'lib/graphql/rake_task.rb', line 45 def rake_namespace @namespace end |