Module: RelaySchemaHelpers
- Defined in:
- lib/generators/graphql/templates/graph/relay_schema.rb
Constant Summary collapse
- SCHEMA_DIR =
Rails.root.join('app/assets/javascripts/relay/')
- SCHEMA_PATH =
File.join(SCHEMA_DIR, 'schema.json')
Instance Method Summary collapse
Instance Method Details
#checksum ⇒ Object
13 14 15 16 17 |
# File 'lib/generators/graphql/templates/graph/relay_schema.rb', line 13 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 ⇒ Object
7 8 9 10 11 |
# File 'lib/generators/graphql/templates/graph/relay_schema.rb', line 7 def explain Rails.cache.fetch checksum do RelaySchema.execute GraphQL::Introspection::INTROSPECTION_QUERY end end |
#generate ⇒ Object
19 20 21 22 23 24 25 |
# File 'lib/generators/graphql/templates/graph/relay_schema.rb', line 19 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 ⇒ Object
27 28 29 |
# File 'lib/generators/graphql/templates/graph/relay_schema.rb', line 27 def remove FileUtils.rm SCHEMA_PATH if File.exist? SCHEMA_PATH end |