Class: GraphQL::RemoteLoader::Loader
- Inherits:
-
Batch::Loader
- Object
- Batch::Loader
- GraphQL::RemoteLoader::Loader
- Defined in:
- lib/graphql/remote_loader/loader.rb
Class Method Summary collapse
-
.load(query) ⇒ Object
Delegates to GraphQL::Batch::Loader#load We include a unique prime as part of the batch key to use as part of the alias on all fields.
Instance Method Summary collapse
-
#query(query_string) ⇒ Object
Given a query string, return a response JSON.
Class Method Details
.load(query) ⇒ Object
Delegates to GraphQL::Batch::Loader#load We include a unique prime as part of the batch key to use as part of the alias on all fields. This is used to a) Avoid name collisions in the generated query b) Determine which fields in the result JSON should be
handed fulfilled to each promise
13 14 15 16 17 18 19 20 |
# File 'lib/graphql/remote_loader/loader.rb', line 13 def self.load(query) @index ||= 1 @index += 1 prime = Prime.take(@index - 1).last self.for.load([query, prime]) end |
Instance Method Details
#query(query_string) ⇒ Object
Given a query string, return a response JSON
23 24 25 26 |
# File 'lib/graphql/remote_loader/loader.rb', line 23 def query(query_string) raise NotImplementedError, "RemoteLoader::Loader should be subclassed and #query must be defined" end |