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 |