Class: GraphQL::Directive
Constant Summary
collapse
- LOCATIONS =
[
QUERY = :QUERY,
MUTATION = :MUTATION,
SUBSCRIPTION = :SUBSCRIPTION,
FIELD = :FIELD,
FRAGMENT_DEFINITION = :FRAGMENT_DEFINITION,
FRAGMENT_SPREAD = :FRAGMENT_SPREAD,
INLINE_FRAGMENT = :INLINE_FRAGMENT,
]
- SkipDirective =
GraphQL::Directive.define do
name "skip"
description "Ignore this part of the query if `if` is true"
locations([GraphQL::Directive::FIELD, GraphQL::Directive::FRAGMENT_SPREAD, GraphQL::Directive::INLINE_FRAGMENT])
argument :if, !GraphQL::BOOLEAN_TYPE
include_proc -> (arguments) {
!arguments["if"]
}
end
- IncludeDirective =
GraphQL::Directive.define do
name "include"
description "Include this part of the query if `if` is true"
locations([GraphQL::Directive::FIELD, GraphQL::Directive::FRAGMENT_SPREAD, GraphQL::Directive::INLINE_FRAGMENT])
argument :if, !GraphQL::BOOLEAN_TYPE
include_proc -> (arguments) {
arguments["if"]
}
end
Instance Method Summary
collapse
#definition_proc=, included, #metadata
Constructor Details
Returns a new instance of Directive.
18
19
20
|
# File 'lib/graphql/directive.rb', line 18
def initialize
@arguments = {}
end
|
Instance Method Details
#include?(arguments) ⇒ Boolean
22
23
24
|
# File 'lib/graphql/directive.rb', line 22
def include?(arguments)
include_proc.call(arguments)
end
|
#on_field? ⇒ Boolean
30
31
32
|
# File 'lib/graphql/directive.rb', line 30
def on_field?
locations.include?(FIELD)
end
|
#on_fragment? ⇒ Boolean
34
35
36
|
# File 'lib/graphql/directive.rb', line 34
def on_fragment?
locations.include?(FRAGMENT_SPREAD) && locations.include?(INLINE_FRAGMENT)
end
|
#on_operation? ⇒ Boolean
38
39
40
|
# File 'lib/graphql/directive.rb', line 38
def on_operation?
locations.include?(QUERY) && locations.include?(MUTATION) && locations.include?(SUBSCRIPTION)
end
|
#to_s ⇒ Object
26
27
28
|
# File 'lib/graphql/directive.rb', line 26
def to_s
"<GraphQL::Directive #{name}>"
end
|