class Types

This is an internal utility class used to manage the GraphQL types, which are stored in an object dump called 'types.json'. The developers might want to use this class to CRUD their GraphQL application types. The scaffold generators will also use this class for the same purpose.

Constants

BASIC

Public Class Methods

new() click to toggle source
# File lib/surikat/types.rb, line 10
def initialize
  @filename = "#{FileUtils.pwd}/config/types.yml"
  @types = load
end

Public Instance Methods

all() click to toggle source
# File lib/surikat/types.rb, line 15
def all
  @types
end
clear() click to toggle source
# File lib/surikat/types.rb, line 30
def clear
  @types = {}
  save
end
delete(type_name) click to toggle source
# File lib/surikat/types.rb, line 24
def delete type_name
  raise "Type #{type_name} not found" unless @types.keys.include?(type_name)
  @types.delete type_name
  save
end
merge(type) click to toggle source
# File lib/surikat/types.rb, line 19
def merge type
  @types.merge! type
  save
end

Private Instance Methods

load() click to toggle source
# File lib/surikat/types.rb, line 36
def load
  return {} unless File.exists?(@filename)
  YAML.load_file @filename
end
save() click to toggle source
# File lib/surikat/types.rb, line 41
def save
  File.open(@filename, 'w') { |file| file.write(@types.to_yaml)}
end