module Stardust::GraphQL::DSL

Public Instance Methods

calling_file() click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# File lib/stardust/graphql/dsl.rb, line 7
def define_types(&block)
  klass = Class.new(Types::DSL)
  klass.class_eval(&block)
end