Class: GraphQL::Directive

Inherits:
Object
  • Object
show all
Extended by:
Definable
Defined in:
lib/graph_ql/directive.rb

Constant Summary collapse

LOCATIONS =
[
  ON_OPERATION =  :on_operation?,
  ON_FRAGMENT =   :on_fragment?,
  ON_FIELD =      :on_field?,
]

Instance Method Summary collapse

Methods included from Definable

attr_definable

Constructor Details

#initialize {|_self, GraphQL::TypeDefiner.instance, GraphQL::FieldDefiner.instance, GraphQL::ArgumentDefiner.instance| ... } ⇒ Directive

Returns a new instance of Directive.

Yields:

Yield Parameters:



15
16
17
18
19
# File 'lib/graph_ql/directive.rb', line 15

def initialize
  @arguments = {}
  @on = []
  yield(self, GraphQL::TypeDefiner.instance, GraphQL::FieldDefiner.instance, GraphQL::ArgumentDefiner.instance)
end

Instance Method Details

#arguments(new_arguments = nil) ⇒ Object



30
31
32
33
34
35
# File 'lib/graph_ql/directive.rb', line 30

def arguments(new_arguments=nil)
  if !new_arguments.nil?
    @arguments = GraphQL::StringNamedHash.new(new_arguments).to_h
  end
  @arguments
end

#resolve(proc_or_arguments, proc = nil) ⇒ Object



21
22
23
24
25
26
27
28
# File 'lib/graph_ql/directive.rb', line 21

def resolve(proc_or_arguments, proc=nil)
  if proc.nil?
    # resolve is being defined, just set it
    @resolve_proc = proc_or_arguments
  else
    @resolve_proc.call(proc_or_arguments, proc)
  end
end

#to_sObject



37
38
39
# File 'lib/graph_ql/directive.rb', line 37

def to_s
  "<GraphQL::Directive #{name}>"
end