Module: Stardust::GraphQL::DSL

Included in:
Stardust::GraphQL
Defined in:
lib/stardust/graphql/dsl.rb

Defined Under Namespace

Classes: MissingType

Instance Method Summary collapse

Instance Method Details

#calling_fileObject



38
39
40
41
# File 'lib/stardust/graphql/dsl.rb', line 38

def calling_file
  caller[1][/[^:]+/]
  .gsub(Rails.root.to_s, "")[1..-1]
end

#define_mutation(name, &block) ⇒ Object



31
32
33
34
35
36
# File 'lib/stardust/graphql/dsl.rb', line 31

def define_mutation(name, &block)
  klass = Class.new(Mutation)
  klass.send(:graphql_name, name.to_s.camelize)
  klass.class_eval(&block)
  Collector.add_mutation(name, mutation: klass)
end

#define_query(name, &block) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/stardust/graphql/dsl.rb', line 12

def define_query(name, &block)
  klass = Class.new(Query)
  klass.class_eval(&block)
  if !klass.get_type
    warn <<~TEXT

      Stardust Compilation Error
      Missing type definition for query in "#{name}".
      File: "#{calling_file}"

        ## Define the return type of the query
        type :my_type

    TEXT
  else
    Collector.add_query(name, query: klass)
  end
end

#define_types(&block) ⇒ Object



7
8
9
10
# File 'lib/stardust/graphql/dsl.rb', line 7

def define_types(&block)
  klass = Class.new(Types::DSL)
  klass.class_eval(&block)
end