Class: Graphiti::Schema
- Defined in:
- lib/graphiti/schema.rb,
lib/graphiti/schema/check.rb
Defined Under Namespace
Classes: Check
Instance Attribute Summary collapse
-
#resources ⇒ Object
readonly
Returns the value of attribute resources.
Class Method Summary collapse
- .check(resources = nil, path: Graphiti.config.schema_path) ⇒ Object
- .generate(resources = nil) ⇒ Object
- .generate!(resources = nil, path: Graphiti.config.schema_path, force: ENV["FORCE_SCHEMA"] == "true") ⇒ Object
Instance Method Summary collapse
- #generate ⇒ Object
-
#initialize(resources) ⇒ Schema
constructor
A new instance of Schema.
Constructor Details
#initialize(resources) ⇒ Schema
Returns a new instance of Schema.
26 27 28 29 30 |
# File 'lib/graphiti/schema.rb', line 26 def initialize(resources) @resources = resources.sort_by(&:name) @remote_resources = @resources.select(&:remote?) @local_resources = @resources - @remote_resources end |
Instance Attribute Details
#resources ⇒ Object (readonly)
Returns the value of attribute resources.
3 4 5 |
# File 'lib/graphiti/schema.rb', line 3 def resources @resources end |
Class Method Details
.check(resources = nil, path: Graphiti.config.schema_path) ⇒ Object
22 23 24 |
# File 'lib/graphiti/schema.rb', line 22 def self.check(resources = nil, path: Graphiti.config.schema_path) Check.new(generate(resources), path) end |
.generate(resources = nil) ⇒ Object
5 6 7 8 9 10 11 12 |
# File 'lib/graphiti/schema.rb', line 5 def self.generate(resources = nil) # TODO: Maybe handle this in the Rails integration ::Rails.application.eager_load! if defined?(::Rails) resources ||= Graphiti.resources.reject(&:abstract_class?) resources.reject! { |r| r.name.nil? } new(resources).generate end |
.generate!(resources = nil, path: Graphiti.config.schema_path, force: ENV["FORCE_SCHEMA"] == "true") ⇒ Object
14 15 16 17 18 19 20 |
# File 'lib/graphiti/schema.rb', line 14 def self.generate!(resources = nil, path: Graphiti.config.schema_path, force: ENV["FORCE_SCHEMA"] == "true") result = check(resources, path: path) return result.errors if !force && !result.compatible? result.write! [] end |
Instance Method Details
#generate ⇒ Object
32 33 34 35 36 37 38 |
# File 'lib/graphiti/schema.rb', line 32 def generate { resources: generate_resources, endpoints: generate_endpoints, types: generate_types } end |