Class: Graphiti::Configuration
Instance Attribute Summary collapse
-
#before_sideload ⇒ Object
Returns the value of attribute before_sideload.
-
#concurrency ⇒ Boolean
Concurrently fetch sideloads? Defaults to false OR if classes are cached (Rails-only).
-
#concurrency_max_threads ⇒ Integer
This number must be considered in accordance with the database connection pool size configured in ‘database.yml`.
-
#context_for_endpoint ⇒ Object
Returns the value of attribute context_for_endpoint.
-
#debug ⇒ Object
Returns the value of attribute debug.
-
#debug_models ⇒ Object
Returns the value of attribute debug_models.
-
#links_on_demand ⇒ Object
Returns the value of attribute links_on_demand.
-
#pagination_links ⇒ Object
Returns the value of attribute pagination_links.
-
#pagination_links_on_demand ⇒ Object
Returns the value of attribute pagination_links_on_demand.
-
#raise_on_missing_sideload ⇒ Boolean
Should we raise when the client requests a relationship not defined on the server? Defaults to true.
-
#raise_on_missing_sidepost ⇒ Object
Returns the value of attribute raise_on_missing_sidepost.
-
#respond_to ⇒ Object
Returns the value of attribute respond_to.
- #schema_path ⇒ Object
-
#typecast_reads ⇒ Object
Returns the value of attribute typecast_reads.
Instance Method Summary collapse
-
#initialize ⇒ Configuration
constructor
private
Set defaults.
- #with_option(key, value) ⇒ Object
Constructor Details
#initialize ⇒ Configuration
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Set defaults
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/graphiti/configuration.rb', line 40 def initialize @raise_on_missing_sideload = true @concurrency = false @concurrency_max_threads = 4 @respond_to = [:json, :jsonapi, :xml] @links_on_demand = false @pagination_links_on_demand = false @pagination_links = false @typecast_reads = true @raise_on_missing_sidepost = true self.debug = ENV.fetch("GRAPHITI_DEBUG", true) self.debug_models = ENV.fetch("GRAPHITI_DEBUG_MODELS", false) # FIXME: Don't duplicate graphiti-rails efforts if defined?(::Rails.root) && (root = ::Rails.root) config_file = root.join(".graphiticfg.yml") if config_file.exist? cfg = YAML.load_file(config_file) @schema_path = root.join("public#{cfg["namespace"]}/schema.json") else @schema_path = root.join("public/schema.json") end if (logger = ::Rails.logger) self.debug = logger.debug? && debug Graphiti.logger = logger end end end |
Instance Attribute Details
#before_sideload ⇒ Object
Returns the value of attribute before_sideload.
32 33 34 |
# File 'lib/graphiti/configuration.rb', line 32 def before_sideload @before_sideload end |
#concurrency ⇒ Boolean
Returns Concurrently fetch sideloads? Defaults to false OR if classes are cached (Rails-only).
9 10 11 |
# File 'lib/graphiti/configuration.rb', line 9 def concurrency @concurrency end |
#concurrency_max_threads ⇒ Integer
This number must be considered in accordance with the database connection pool size configured in ‘database.yml`. The connection pool should be large enough to accommodate both the foreground threads (ie. web server or job worker threads) and background threads. For each process, Graphiti will create one global executor that uses this many threads to sideload resources asynchronously. Thus, the pool size should be at least `thread_count + concurrency_max_threads + 1`. For example, if your web server has a maximum of 3 threads, and `concurrency_max_threads` is set to 4, then your pool size should be at least 8.
23 24 25 |
# File 'lib/graphiti/configuration.rb', line 23 def concurrency_max_threads @concurrency_max_threads end |
#context_for_endpoint ⇒ Object
Returns the value of attribute context_for_endpoint.
26 27 28 |
# File 'lib/graphiti/configuration.rb', line 26 def context_for_endpoint @context_for_endpoint end |
#debug ⇒ Object
Returns the value of attribute debug.
34 35 36 |
# File 'lib/graphiti/configuration.rb', line 34 def debug @debug end |
#debug_models ⇒ Object
Returns the value of attribute debug_models.
34 35 36 |
# File 'lib/graphiti/configuration.rb', line 34 def debug_models @debug_models end |
#links_on_demand ⇒ Object
Returns the value of attribute links_on_demand.
27 28 29 |
# File 'lib/graphiti/configuration.rb', line 27 def links_on_demand @links_on_demand end |
#pagination_links ⇒ Object
Returns the value of attribute pagination_links.
29 30 31 |
# File 'lib/graphiti/configuration.rb', line 29 def pagination_links @pagination_links end |
#pagination_links_on_demand ⇒ Object
Returns the value of attribute pagination_links_on_demand.
28 29 30 |
# File 'lib/graphiti/configuration.rb', line 28 def pagination_links_on_demand @pagination_links_on_demand end |
#raise_on_missing_sideload ⇒ Boolean
Returns Should we raise when the client requests a relationship not defined on the server? Defaults to true.
6 7 8 |
# File 'lib/graphiti/configuration.rb', line 6 def raise_on_missing_sideload @raise_on_missing_sideload end |
#raise_on_missing_sidepost ⇒ Object
Returns the value of attribute raise_on_missing_sidepost.
31 32 33 |
# File 'lib/graphiti/configuration.rb', line 31 def raise_on_missing_sidepost @raise_on_missing_sidepost end |
#respond_to ⇒ Object
Returns the value of attribute respond_to.
25 26 27 |
# File 'lib/graphiti/configuration.rb', line 25 def respond_to @respond_to end |
#schema_path ⇒ Object
70 71 72 |
# File 'lib/graphiti/configuration.rb', line 70 def schema_path @schema_path ||= raise("No schema_path defined! Set Graphiti.config.schema_path to save your schema.") end |
#typecast_reads ⇒ Object
Returns the value of attribute typecast_reads.
30 31 32 |
# File 'lib/graphiti/configuration.rb', line 30 def typecast_reads @typecast_reads end |
Instance Method Details
#with_option(key, value) ⇒ Object
84 85 86 87 88 89 90 |
# File 'lib/graphiti/configuration.rb', line 84 def with_option(key, value) original = send(key) send(:"#{key}=", value) yield ensure send(:"#{key}=", original) end |