Class: Quonfig::Options
- Inherits:
-
Object
- Object
- Quonfig::Options
- Defined in:
- lib/quonfig/options.rb
Overview
Options passed to Quonfig::Client at construction time.
Defined Under Namespace
Modules: ON_INITIALIZATION_FAILURE, ON_NO_DEFAULT
Constant Summary collapse
- DEFAULT_MAX_PATHS =
1_000- DEFAULT_MAX_KEYS =
100_000- DEFAULT_MAX_EXAMPLE_CONTEXTS =
100_000- DEFAULT_MAX_EVAL_SUMMARIES =
100_000- DEFAULT_DOMAIN =
Hardcoded fallback domain. Overridden by ENV.
'quonfig.com'- DEFAULT_API_URLS =
Hardcoded fallback API URLs (used only when no QUONFIG_DOMAIN is set and no explicit api_urls are provided). Mirrors derive_api_urls(DEFAULT_DOMAIN).
[ 'https://primary.quonfig.com', 'https://secondary.quonfig.com', ].freeze
Instance Attribute Summary collapse
-
#api_urls ⇒ Object
readonly
Returns the value of attribute api_urls.
-
#collect_sync_interval ⇒ Object
readonly
Returns the value of attribute collect_sync_interval.
-
#config_api_urls ⇒ Object
readonly
Returns the value of attribute config_api_urls.
-
#datadir ⇒ Object
readonly
Returns the value of attribute datadir.
-
#enable_polling ⇒ Object
readonly
Returns the value of attribute enable_polling.
-
#enable_quonfig_user_context ⇒ Object
readonly
Returns the value of attribute enable_quonfig_user_context.
-
#enable_sse ⇒ Object
readonly
Returns the value of attribute enable_sse.
-
#environment ⇒ Object
readonly
Returns the value of attribute environment.
-
#global_context ⇒ Object
readonly
Returns the value of attribute global_context.
-
#initialization_timeout_sec ⇒ Object
readonly
Returns the value of attribute initialization_timeout_sec.
-
#is_fork ⇒ Object
Returns the value of attribute is_fork.
-
#logger_key ⇒ Object
readonly
Returns the value of attribute logger_key.
-
#on_init_failure ⇒ Object
readonly
Returns the value of attribute on_init_failure.
-
#on_no_default ⇒ Object
readonly
Returns the value of attribute on_no_default.
-
#poll_interval ⇒ Object
readonly
Returns the value of attribute poll_interval.
-
#sdk_key ⇒ Object
readonly
Returns the value of attribute sdk_key.
-
#sse_api_urls ⇒ Object
readonly
Returns the value of attribute sse_api_urls.
-
#telemetry_destination ⇒ Object
readonly
Returns the value of attribute telemetry_destination.
Class Method Summary collapse
-
.derive_api_urls(domain) ⇒ Object
Derive default api_urls for a given domain.
-
.derive_stream_url(api_url) ⇒ Object
Derive the SSE stream URL for a given API URL by prepending ‘stream.` to the hostname.
-
.derive_telemetry_url(domain) ⇒ Object
Derive the telemetry URL for a given domain.
-
.domain ⇒ Object
Resolve the active domain.
Instance Method Summary collapse
- #collect_max_evaluation_summaries ⇒ Object
- #collect_max_example_contexts ⇒ Object
- #collect_max_paths ⇒ Object
- #collect_max_shapes ⇒ Object
- #datadir? ⇒ Boolean
- #for_fork ⇒ Object
-
#initialize(options = {}) ⇒ Options
constructor
A new instance of Options.
-
#local_only? ⇒ Boolean
In datadir mode the SDK evaluates config from a local workspace and does not connect to the delivery service.
- #sdk_key_id ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ Options
Returns a new instance of Options.
166 167 168 |
# File 'lib/quonfig/options.rb', line 166 def initialize( = {}) init(**) end |
Instance Attribute Details
#api_urls ⇒ Object (readonly)
Returns the value of attribute api_urls.
10 11 12 |
# File 'lib/quonfig/options.rb', line 10 def api_urls @api_urls end |
#collect_sync_interval ⇒ Object (readonly)
Returns the value of attribute collect_sync_interval.
17 18 19 |
# File 'lib/quonfig/options.rb', line 17 def collect_sync_interval @collect_sync_interval end |
#config_api_urls ⇒ Object (readonly)
Returns the value of attribute config_api_urls.
13 14 15 |
# File 'lib/quonfig/options.rb', line 13 def config_api_urls @config_api_urls end |
#datadir ⇒ Object (readonly)
Returns the value of attribute datadir.
18 19 20 |
# File 'lib/quonfig/options.rb', line 18 def datadir @datadir end |
#enable_polling ⇒ Object (readonly)
Returns the value of attribute enable_polling.
20 21 22 |
# File 'lib/quonfig/options.rb', line 20 def enable_polling @enable_polling end |
#enable_quonfig_user_context ⇒ Object (readonly)
Returns the value of attribute enable_quonfig_user_context.
24 25 26 |
# File 'lib/quonfig/options.rb', line 24 def enable_quonfig_user_context @enable_quonfig_user_context end |
#enable_sse ⇒ Object (readonly)
Returns the value of attribute enable_sse.
19 20 21 |
# File 'lib/quonfig/options.rb', line 19 def enable_sse @enable_sse end |
#environment ⇒ Object (readonly)
Returns the value of attribute environment.
9 10 11 |
# File 'lib/quonfig/options.rb', line 9 def environment @environment end |
#global_context ⇒ Object (readonly)
Returns the value of attribute global_context.
22 23 24 |
# File 'lib/quonfig/options.rb', line 22 def global_context @global_context end |
#initialization_timeout_sec ⇒ Object (readonly)
Returns the value of attribute initialization_timeout_sec.
15 16 17 |
# File 'lib/quonfig/options.rb', line 15 def initialization_timeout_sec @initialization_timeout_sec end |
#is_fork ⇒ Object
Returns the value of attribute is_fork.
25 26 27 |
# File 'lib/quonfig/options.rb', line 25 def is_fork @is_fork end |
#logger_key ⇒ Object (readonly)
Returns the value of attribute logger_key.
23 24 25 |
# File 'lib/quonfig/options.rb', line 23 def logger_key @logger_key end |
#on_init_failure ⇒ Object (readonly)
Returns the value of attribute on_init_failure.
16 17 18 |
# File 'lib/quonfig/options.rb', line 16 def on_init_failure @on_init_failure end |
#on_no_default ⇒ Object (readonly)
Returns the value of attribute on_no_default.
14 15 16 |
# File 'lib/quonfig/options.rb', line 14 def on_no_default @on_no_default end |
#poll_interval ⇒ Object (readonly)
Returns the value of attribute poll_interval.
21 22 23 |
# File 'lib/quonfig/options.rb', line 21 def poll_interval @poll_interval end |
#sdk_key ⇒ Object (readonly)
Returns the value of attribute sdk_key.
8 9 10 |
# File 'lib/quonfig/options.rb', line 8 def sdk_key @sdk_key end |
#sse_api_urls ⇒ Object (readonly)
Returns the value of attribute sse_api_urls.
11 12 13 |
# File 'lib/quonfig/options.rb', line 11 def sse_api_urls @sse_api_urls end |
#telemetry_destination ⇒ Object (readonly)
Returns the value of attribute telemetry_destination.
12 13 14 |
# File 'lib/quonfig/options.rb', line 12 def telemetry_destination @telemetry_destination end |
Class Method Details
.derive_api_urls(domain) ⇒ Object
Derive default api_urls for a given domain. e.g. for domain ‘quonfig-staging.com` returns `[“primary.quonfig-staging.com”, “secondary.quonfig-staging.com”]`.
62 63 64 65 66 67 |
# File 'lib/quonfig/options.rb', line 62 def self.derive_api_urls(domain) [ "https://primary.#{domain}", "https://secondary.#{domain}", ] end |
.derive_stream_url(api_url) ⇒ Object
Derive the SSE stream URL for a given API URL by prepending ‘stream.` to the hostname. Preserves scheme, port, and path.
derive_stream_url('https://primary.quonfig.com')
# => 'https://stream.primary.quonfig.com'
derive_stream_url('http://localhost:6550')
# => 'http://stream.localhost:6550'
81 82 83 84 85 |
# File 'lib/quonfig/options.rb', line 81 def self.derive_stream_url(api_url) uri = URI.parse(api_url) uri.host = "stream.#{uri.host}" if uri.host uri.to_s end |
.derive_telemetry_url(domain) ⇒ Object
Derive the telemetry URL for a given domain.
70 71 72 |
# File 'lib/quonfig/options.rb', line 70 def self.derive_telemetry_url(domain) "https://telemetry.#{domain}" end |
.domain ⇒ Object
Resolve the active domain. Reads QUONFIG_DOMAIN; falls back to DEFAULT_DOMAIN. Mirrors ‘cli/src/util/domain-urls.ts#getDomain`.
54 55 56 57 |
# File 'lib/quonfig/options.rb', line 54 def self.domain env = ENV['QUONFIG_DOMAIN'] env && !env.empty? ? env : DEFAULT_DOMAIN end |
Instance Method Details
#collect_max_evaluation_summaries ⇒ Object
198 199 200 201 202 |
# File 'lib/quonfig/options.rb', line 198 def collect_max_evaluation_summaries return 0 unless telemetry_allowed?(@collect_evaluation_summaries) @collect_max_evaluation_summaries end |
#collect_max_example_contexts ⇒ Object
192 193 194 195 196 |
# File 'lib/quonfig/options.rb', line 192 def collect_max_example_contexts return 0 unless telemetry_allowed?(@collect_example_contexts) @collect_max_example_contexts end |
#collect_max_paths ⇒ Object
180 181 182 183 184 |
# File 'lib/quonfig/options.rb', line 180 def collect_max_paths return 0 unless telemetry_allowed?(true) @collect_max_paths end |
#collect_max_shapes ⇒ Object
186 187 188 189 190 |
# File 'lib/quonfig/options.rb', line 186 def collect_max_shapes return 0 unless telemetry_allowed?(@collect_shapes) @collect_max_shapes end |
#datadir? ⇒ Boolean
176 177 178 |
# File 'lib/quonfig/options.rb', line 176 def datadir? !@datadir.nil? end |
#for_fork ⇒ Object
208 209 210 211 212 |
# File 'lib/quonfig/options.rb', line 208 def for_fork clone = self.clone clone.is_fork = true clone end |
#local_only? ⇒ Boolean
In datadir mode the SDK evaluates config from a local workspace and does not connect to the delivery service.
172 173 174 |
# File 'lib/quonfig/options.rb', line 172 def local_only? !@datadir.nil? end |
#sdk_key_id ⇒ Object
204 205 206 |
# File 'lib/quonfig/options.rb', line 204 def sdk_key_id @sdk_key&.split('-')&.first end |