Module: HQ::GraphQL::Types

Defined in:
lib/hq/graphql/types.rb,
lib/hq/graphql/types/uuid.rb,
lib/hq/graphql/types/object.rb

Defined Under Namespace

Classes: Error, Object, UUID

Class Method Summary collapse

Class Method Details

.[](key, is_nil = false) ⇒ Object



25
26
27
# File 'lib/hq/graphql/types.rb', line 25

def self.[](key, is_nil = false)
  registry[[key, is_nil]]
end

.[]=(key, is_nil = false, value) ⇒ Object



21
22
23
# File 'lib/hq/graphql/types.rb', line 21

def self.[]=(key, is_nil = false, value)
  registry[[key, is_nil]] = value
end

.register(k, v) ⇒ Object



17
18
19
# File 'lib/hq/graphql/types.rb', line 17

def self.register(k, v)
  self[k] = v
end

.registryObject



10
11
12
13
14
15
# File 'lib/hq/graphql/types.rb', line 10

def self.registry
  @registry ||= Hash.new do |hash, options|
    klass, nil_klass = Array(options)
    hash[klass] = nil_klass ? nil_query_klass(klass) : klass_for(klass)
  end
end

.reset!Object

Only being used in testing



50
51
52
# File 'lib/hq/graphql/types.rb', line 50

def self.reset!
  @registry = nil
end

.type_from_column(column) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/hq/graphql/types.rb', line 29

def self.type_from_column(column)
  graphql_type =
    case column.type
    when :uuid
      ::HQ::GraphQL::Types::UUID
    when :json, :jsonb
      ::HQ::GraphQL::Types::Object
    when :integer
      ::GraphQL::Types::Int
    when :decimal
      ::GraphQL::Types::Float
    when :boolean
      ::GraphQL::Types::Boolean
    else
      ::GraphQL::Types::String
    end

  column.array ? [graphql_type] : graphql_type
end