module RelaySchemaHelpers

Constants

SCHEMA_DIR
SCHEMA_PATH

Public Instance Methods

checksum() click to toggle source
# File lib/generators/graphql/templates/graph/relay_schema.rb, line 15
def checksum
  files   = Dir["app/graph/**/*.rb"].reject { |f| File.directory?(f) }
  content = files.map { |f| File.read(f) }.join
  Digest::SHA256.hexdigest(content).to_s
end
explain() click to toggle source
# File lib/generators/graphql/templates/graph/relay_schema.rb, line 9
def explain
  Rails.cache.fetch checksum do
    RelaySchema.execute GraphQL::Introspection::INTROSPECTION_QUERY
  end
end
generate() click to toggle source
# File lib/generators/graphql/templates/graph/relay_schema.rb, line 21
def generate
  FileUtils.mkdir_p SCHEMA_DIR
  result = JSON.pretty_generate(RelaySchema.explain)
  unless File.exists?(SCHEMA_PATH) && File.read(SCHEMA_PATH) == result
    File.write(SCHEMA_PATH, result)
  end
end
remove() click to toggle source
# File lib/generators/graphql/templates/graph/relay_schema.rb, line 29
def remove
  FileUtils.rm SCHEMA_PATH if File.exist? SCHEMA_PATH
end