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 |