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 90 91 92 93 94 95 96 97 |
# File 'lib/graphql/rake_task.rb', line 78 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>
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 |