Class: LaunchDarkly::Config
- Inherits:
-
Object
- Object
- LaunchDarkly::Config
- Defined in:
- lib/ldclient-rb/config.rb
Overview
This class exposes advanced configuration options for the LaunchDarkly client library. Most users will not need to use a custom configuration– the default configuration sets sane defaults for most use cases.
Instance Attribute Summary collapse
-
#base_uri ⇒ String
readonly
The base URL for the LaunchDarkly server.
-
#cache_store ⇒ Object
readonly
The store for the Faraday HTTP caching library.
-
#capacity ⇒ Integer
readonly
The capacity of the events buffer.
-
#connect_timeout ⇒ Float
readonly
The connect timeout for network connections in seconds.
-
#events_uri ⇒ String
readonly
The base URL for the LaunchDarkly events server.
-
#feature_store ⇒ Object
readonly
A store for feature flag configuration rules.
-
#flush_interval ⇒ Float
readonly
The number of seconds between flushes of the event buffer.
-
#logger ⇒ Logger
readonly
The configured logger for the LaunchDarkly client.
-
#poll_interval ⇒ Object
readonly
The number of seconds to wait before polling for feature flag updates.
-
#proxy ⇒ Object
readonly
The proxy configuration string.
-
#read_timeout ⇒ Float
readonly
The read timeout for network connections in seconds.
-
#stream_uri ⇒ String
readonly
The base URL for the LaunchDarkly streaming server.
Class Method Summary collapse
-
.default ⇒ Config
The default LaunchDarkly client configuration.
- .default_base_uri ⇒ Object
- .default_cache_store ⇒ Object
- .default_capacity ⇒ Object
- .default_connect_timeout ⇒ Object
- .default_events_uri ⇒ Object
- .default_feature_store ⇒ Object
- .default_flush_interval ⇒ Object
- .default_logger ⇒ Object
- .default_offline ⇒ Object
- .default_poll_interval ⇒ Object
- .default_proxy ⇒ Object
- .default_read_timeout ⇒ Object
- .default_stream ⇒ Object
- .default_stream_uri ⇒ Object
Instance Method Summary collapse
-
#initialize(opts = {}) ⇒ type
constructor
Constructor for creating custom LaunchDarkly configurations.
-
#offline? ⇒ Boolean
TODO docs.
-
#stream? ⇒ Boolean
Whether streaming mode should be enabled.
Constructor Details
#initialize(opts = {}) ⇒ type
Constructor for creating custom LaunchDarkly configurations.
rubocop:disable Metrics/AbcSize, Metrics/PerceivedComplexity
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/ldclient-rb/config.rb', line 46 def initialize(opts = {}) @base_uri = (opts[:base_uri] || Config.default_base_uri).chomp("/") @stream_uri = (opts[:stream_uri] || Config.default_stream_uri).chomp("/") @events_uri = (opts[:events_uri] || Config.default_events_uri).chomp("/") @capacity = opts[:capacity] || Config.default_capacity @logger = opts[:logger] || Config.default_logger @cache_store = opts[:cache_store] || Config.default_cache_store @flush_interval = opts[:flush_interval] || Config.default_flush_interval @connect_timeout = opts[:connect_timeout] || Config.default_connect_timeout @read_timeout = opts[:read_timeout] || Config.default_read_timeout @feature_store = opts[:feature_store] || Config.default_feature_store @stream = opts.has_key?(:stream) ? opts[:stream] : Config.default_stream @offline = opts.has_key?(:offline) ? opts[:offline] : Config.default_offline @poll_interval = opts.has_key?(:poll_interval) && opts[:poll_interval] > 1 ? opts[:poll_interval] : Config.default_poll_interval @proxy = opts[:proxy] || Config.default_proxy end |
Instance Attribute Details
#base_uri ⇒ String (readonly)
The base URL for the LaunchDarkly server.
67 68 69 |
# File 'lib/ldclient-rb/config.rb', line 67 def base_uri @base_uri end |
#cache_store ⇒ Object (readonly)
The store for the Faraday HTTP caching library. Stores should respond to ‘read’ and ‘write’ requests.
129 130 131 |
# File 'lib/ldclient-rb/config.rb', line 129 def cache_store @cache_store end |
#capacity ⇒ Integer (readonly)
The capacity of the events buffer. The client buffers up to this many events in memory before flushing. If the capacity is exceeded before the buffer is flushed, events will be discarded. Increasing the capacity means that events are less likely to be discarded, at the cost of consuming more memory.
122 123 124 |
# File 'lib/ldclient-rb/config.rb', line 122 def capacity @capacity end |
#connect_timeout ⇒ Float (readonly)
The connect timeout for network connections in seconds.
141 142 143 |
# File 'lib/ldclient-rb/config.rb', line 141 def connect_timeout @connect_timeout end |
#events_uri ⇒ String (readonly)
The base URL for the LaunchDarkly events server.
79 80 81 |
# File 'lib/ldclient-rb/config.rb', line 79 def events_uri @events_uri end |
#feature_store ⇒ Object (readonly)
A store for feature flag configuration rules.
146 147 148 |
# File 'lib/ldclient-rb/config.rb', line 146 def feature_store @feature_store end |
#flush_interval ⇒ Float (readonly)
The number of seconds between flushes of the event buffer. Decreasing the flush interval means that the event buffer is less likely to reach capacity.
100 101 102 |
# File 'lib/ldclient-rb/config.rb', line 100 def flush_interval @flush_interval end |
#logger ⇒ Logger (readonly)
The configured logger for the LaunchDarkly client. The client library uses the log to print warning and error messages.
112 113 114 |
# File 'lib/ldclient-rb/config.rb', line 112 def logger @logger end |
#poll_interval ⇒ Object (readonly)
The number of seconds to wait before polling for feature flag updates. This option has no effect unless streaming is disabled
105 106 107 |
# File 'lib/ldclient-rb/config.rb', line 105 def poll_interval @poll_interval end |
#proxy ⇒ Object (readonly)
The proxy configuration string
151 152 153 |
# File 'lib/ldclient-rb/config.rb', line 151 def proxy @proxy end |
#read_timeout ⇒ Float (readonly)
The read timeout for network connections in seconds.
135 136 137 |
# File 'lib/ldclient-rb/config.rb', line 135 def read_timeout @read_timeout end |
#stream_uri ⇒ String (readonly)
The base URL for the LaunchDarkly streaming server.
73 74 75 |
# File 'lib/ldclient-rb/config.rb', line 73 def stream_uri @stream_uri end |
Class Method Details
.default ⇒ Config
The default LaunchDarkly client configuration. This configuration sets reasonable defaults for most users.
158 159 160 |
# File 'lib/ldclient-rb/config.rb', line 158 def self.default Config.new end |
.default_base_uri ⇒ Object
166 167 168 |
# File 'lib/ldclient-rb/config.rb', line 166 def self.default_base_uri "https://app.launchdarkly.com" end |
.default_cache_store ⇒ Object
178 179 180 |
# File 'lib/ldclient-rb/config.rb', line 178 def self.default_cache_store defined?(Rails) && Rails.respond_to?(:cache) ? Rails.cache : ThreadSafeMemoryStore.new end |
.default_capacity ⇒ Object
162 163 164 |
# File 'lib/ldclient-rb/config.rb', line 162 def self.default_capacity 10000 end |
.default_connect_timeout ⇒ Object
190 191 192 |
# File 'lib/ldclient-rb/config.rb', line 190 def self.default_connect_timeout 2 end |
.default_events_uri ⇒ Object
174 175 176 |
# File 'lib/ldclient-rb/config.rb', line 174 def self.default_events_uri "https://events.launchdarkly.com" end |
.default_feature_store ⇒ Object
212 213 214 |
# File 'lib/ldclient-rb/config.rb', line 212 def self.default_feature_store InMemoryFeatureStore.new end |
.default_flush_interval ⇒ Object
182 183 184 |
# File 'lib/ldclient-rb/config.rb', line 182 def self.default_flush_interval 10 end |
.default_logger ⇒ Object
198 199 200 201 202 203 204 205 206 |
# File 'lib/ldclient-rb/config.rb', line 198 def self.default_logger if defined?(Rails) && Rails.respond_to?(:logger) Rails.logger else log = ::Logger.new($stdout) log.level = ::Logger::WARN log end end |
.default_offline ⇒ Object
216 217 218 |
# File 'lib/ldclient-rb/config.rb', line 216 def self.default_offline false end |
.default_poll_interval ⇒ Object
220 221 222 |
# File 'lib/ldclient-rb/config.rb', line 220 def self.default_poll_interval 1 end |
.default_proxy ⇒ Object
194 195 196 |
# File 'lib/ldclient-rb/config.rb', line 194 def self.default_proxy nil end |
.default_read_timeout ⇒ Object
186 187 188 |
# File 'lib/ldclient-rb/config.rb', line 186 def self.default_read_timeout 10 end |
.default_stream ⇒ Object
208 209 210 |
# File 'lib/ldclient-rb/config.rb', line 208 def self.default_stream true end |
.default_stream_uri ⇒ Object
170 171 172 |
# File 'lib/ldclient-rb/config.rb', line 170 def self.default_stream_uri "https://stream.launchdarkly.com" end |
Instance Method Details
#offline? ⇒ Boolean
TODO docs
91 92 93 |
# File 'lib/ldclient-rb/config.rb', line 91 def offline? @offline end |
#stream? ⇒ Boolean
Whether streaming mode should be enabled. Streaming mode asynchronously updates feature flags in real-time using server-sent events.
86 87 88 |
# File 'lib/ldclient-rb/config.rb', line 86 def stream? @stream end |