Class: Graphlient::Query

Inherits:
Object
  • Object
show all
Defined in:
lib/graphlient/query.rb,
lib/graphlient/query/directive.rb,
lib/graphlient/query/serializer.rb,
lib/graphlient/query/serializer/scalars.rb,
lib/graphlient/query/serializer/arguments.rb,
lib/graphlient/query/serializer/evaluator.rb,
lib/graphlient/query/serializer/fragments.rb,
lib/graphlient/query/serializer/directives.rb

Overview

Public interface for building GraphQL query strings via a DSL block. Delegates all string-building work to Query::Serializer.

Usage:

Graphlient::Query.new do
query do
  invoice(id: 10) { id; fee_in_cents }
end
end.to_s

Defined Under Namespace

Classes: Directive, Serializer

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(&block) ⇒ Query

Returns a new instance of Query.



21
22
23
# File 'lib/graphlient/query.rb', line 21

def initialize(&block)
  @serializer = Serializer.new(&block)
end

Class Method Details

.scalar(sym, graphql_type) ⇒ Object

Register a custom scalar type for variable declarations. Delegates to Serializer so client configuration works:

client = Graphlient::Client.new(url) { |c| c.scalar :date, 'Date' }


17
18
19
# File 'lib/graphlient/query.rb', line 17

def self.scalar(sym, graphql_type)
  Serializer.scalar(sym, graphql_type)
end

Instance Method Details

#to_sObject



25
26
27
# File 'lib/graphlient/query.rb', line 25

def to_s
  @serializer.to_s
end