Class: GraphQL::RakeTask
- Inherits:
-
Object
- Object
- GraphQL::RakeTask
- Includes:
- Rake::DSL
- Defined in:
- lib/graphql/rake_task.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
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/graphql/rake_task.rb', line 76 def initialize( = {}) default_dependencies = if Rake::Task.task_defined?("environment") [:environment] else [] end = DEFAULT_OPTIONS .merge(dependencies: default_dependencies) .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>
47 48 49 |
# File 'lib/graphql/rake_task.rb', line 47 def dependencies @dependencies end |
#directory ⇒ String
Returns directory for IDL & JSON files.
72 73 74 |
# File 'lib/graphql/rake_task.rb', line 72 def directory @directory end |
#except ⇒ <#call(member, ctx)>?
Returns A filter for this task.
63 64 65 |
# File 'lib/graphql/rake_task.rb', line 63 def except @except end |
#idl_outfile ⇒ String
Returns target for IDL task.
66 67 68 |
# File 'lib/graphql/rake_task.rb', line 66 def idl_outfile @idl_outfile end |
#json_outfile ⇒ String
Returns target for JSON task.
69 70 71 |
# File 'lib/graphql/rake_task.rb', line 69 def json_outfile @json_outfile end |
#load_context ⇒ <#call(task)>
Returns A callable for loading the query context.
57 58 59 |
# File 'lib/graphql/rake_task.rb', line 57 def load_context @load_context end |
#load_schema ⇒ <#call(task)>
Returns A proc for loading the target GraphQL schema.
54 55 56 |
# File 'lib/graphql/rake_task.rb', line 54 def load_schema @load_schema end |
#namespace=(value) ⇒ String (writeonly)
Returns Namespace for generated tasks.
40 41 42 |
# File 'lib/graphql/rake_task.rb', line 40 def namespace=(value) @namespace = value end |
#only ⇒ <#call(member, ctx)>?
Returns A filter for this task.
60 61 62 |
# File 'lib/graphql/rake_task.rb', line 60 def only @only end |
#schema_name ⇒ String
Returns By default, used to find the schema as a constant.
51 52 53 |
# File 'lib/graphql/rake_task.rb', line 51 def schema_name @schema_name end |
Instance Method Details
#rake_namespace ⇒ Object
42 43 44 |
# File 'lib/graphql/rake_task.rb', line 42 def rake_namespace @namespace end |