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
-
#all_attributes_private ⇒ Object
readonly
Returns the value of attribute all_attributes_private.
-
#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.
-
#private_attribute_names ⇒ Object
readonly
Returns the value of attribute private_attribute_names.
-
#proxy ⇒ Object
readonly
The proxy configuration string.
-
#read_timeout ⇒ Float
readonly
The read timeout for network connections in seconds.
-
#send_events ⇒ Object
readonly
Whether to send events back to LaunchDarkly.
-
#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_send_events ⇒ Object
- .default_stream ⇒ Object
- .default_stream_uri ⇒ Object
- .default_use_ldd ⇒ 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.
-
#use_ldd? ⇒ Boolean
Whether to use the LaunchDarkly relay proxy in daemon mode.
Constructor Details
#initialize(opts = {}) ⇒ type
Constructor for creating custom LaunchDarkly configurations.
rubocop:disable Metrics/AbcSize, Metrics/PerceivedComplexity
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/ldclient-rb/config.rb', line 60 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 @use_ldd = opts.has_key?(:use_ldd) ? opts[:use_ldd] : Config.default_use_ldd @offline = opts.has_key?(:offline) ? opts[:offline] : Config.default_offline @poll_interval = opts.has_key?(:poll_interval) && opts[:poll_interval] > Config.default_poll_interval ? opts[:poll_interval] : Config.default_poll_interval @proxy = opts[:proxy] || Config.default_proxy @all_attributes_private = opts[:all_attributes_private] || false @private_attribute_names = opts[:private_attribute_names] || [] @send_events = opts.has_key?(:send_events) ? opts[:send_events] : Config.default_send_events end |
Instance Attribute Details
#all_attributes_private ⇒ Object (readonly)
Returns the value of attribute all_attributes_private.
180 181 182 |
# File 'lib/ldclient-rb/config.rb', line 180 def all_attributes_private @all_attributes_private end |
#base_uri ⇒ String (readonly)
The base URL for the LaunchDarkly server.
85 86 87 |
# File 'lib/ldclient-rb/config.rb', line 85 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.
157 158 159 |
# File 'lib/ldclient-rb/config.rb', line 157 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.
150 151 152 |
# File 'lib/ldclient-rb/config.rb', line 150 def capacity @capacity end |
#connect_timeout ⇒ Float (readonly)
The connect timeout for network connections in seconds.
169 170 171 |
# File 'lib/ldclient-rb/config.rb', line 169 def connect_timeout @connect_timeout end |
#events_uri ⇒ String (readonly)
The base URL for the LaunchDarkly events server.
97 98 99 |
# File 'lib/ldclient-rb/config.rb', line 97 def events_uri @events_uri end |
#feature_store ⇒ Object (readonly)
A store for feature flag configuration rules.
174 175 176 |
# File 'lib/ldclient-rb/config.rb', line 174 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.
128 129 130 |
# File 'lib/ldclient-rb/config.rb', line 128 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.
140 141 142 |
# File 'lib/ldclient-rb/config.rb', line 140 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
133 134 135 |
# File 'lib/ldclient-rb/config.rb', line 133 def poll_interval @poll_interval end |
#private_attribute_names ⇒ Object (readonly)
Returns the value of attribute private_attribute_names.
182 183 184 |
# File 'lib/ldclient-rb/config.rb', line 182 def private_attribute_names @private_attribute_names end |
#proxy ⇒ Object (readonly)
The proxy configuration string
178 179 180 |
# File 'lib/ldclient-rb/config.rb', line 178 def proxy @proxy end |
#read_timeout ⇒ Float (readonly)
The read timeout for network connections in seconds.
163 164 165 |
# File 'lib/ldclient-rb/config.rb', line 163 def read_timeout @read_timeout end |
#send_events ⇒ Object (readonly)
Whether to send events back to LaunchDarkly.
187 188 189 |
# File 'lib/ldclient-rb/config.rb', line 187 def send_events @send_events end |
#stream_uri ⇒ String (readonly)
The base URL for the LaunchDarkly streaming server.
91 92 93 |
# File 'lib/ldclient-rb/config.rb', line 91 def stream_uri @stream_uri end |
Class Method Details
.default ⇒ Config
The default LaunchDarkly client configuration. This configuration sets reasonable defaults for most users.
194 195 196 |
# File 'lib/ldclient-rb/config.rb', line 194 def self.default Config.new end |
.default_base_uri ⇒ Object
202 203 204 |
# File 'lib/ldclient-rb/config.rb', line 202 def self.default_base_uri "https://app.launchdarkly.com" end |
.default_cache_store ⇒ Object
214 215 216 |
# File 'lib/ldclient-rb/config.rb', line 214 def self.default_cache_store defined?(Rails) && Rails.respond_to?(:cache) ? Rails.cache : ThreadSafeMemoryStore.new end |
.default_capacity ⇒ Object
198 199 200 |
# File 'lib/ldclient-rb/config.rb', line 198 def self.default_capacity 10000 end |
.default_connect_timeout ⇒ Object
226 227 228 |
# File 'lib/ldclient-rb/config.rb', line 226 def self.default_connect_timeout 2 end |
.default_events_uri ⇒ Object
210 211 212 |
# File 'lib/ldclient-rb/config.rb', line 210 def self.default_events_uri "https://events.launchdarkly.com" end |
.default_feature_store ⇒ Object
252 253 254 |
# File 'lib/ldclient-rb/config.rb', line 252 def self.default_feature_store InMemoryFeatureStore.new end |
.default_flush_interval ⇒ Object
218 219 220 |
# File 'lib/ldclient-rb/config.rb', line 218 def self.default_flush_interval 10 end |
.default_logger ⇒ Object
234 235 236 237 238 239 240 241 242 |
# File 'lib/ldclient-rb/config.rb', line 234 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
256 257 258 |
# File 'lib/ldclient-rb/config.rb', line 256 def self.default_offline false end |
.default_poll_interval ⇒ Object
260 261 262 |
# File 'lib/ldclient-rb/config.rb', line 260 def self.default_poll_interval 30 end |
.default_proxy ⇒ Object
230 231 232 |
# File 'lib/ldclient-rb/config.rb', line 230 def self.default_proxy nil end |
.default_read_timeout ⇒ Object
222 223 224 |
# File 'lib/ldclient-rb/config.rb', line 222 def self.default_read_timeout 10 end |
.default_send_events ⇒ Object
264 265 266 |
# File 'lib/ldclient-rb/config.rb', line 264 def self.default_send_events true end |
.default_stream ⇒ Object
244 245 246 |
# File 'lib/ldclient-rb/config.rb', line 244 def self.default_stream true end |
.default_stream_uri ⇒ Object
206 207 208 |
# File 'lib/ldclient-rb/config.rb', line 206 def self.default_stream_uri "https://stream.launchdarkly.com" end |
.default_use_ldd ⇒ Object
248 249 250 |
# File 'lib/ldclient-rb/config.rb', line 248 def self.default_use_ldd false end |
Instance Method Details
#offline? ⇒ Boolean
TODO docs
119 120 121 |
# File 'lib/ldclient-rb/config.rb', line 119 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.
104 105 106 |
# File 'lib/ldclient-rb/config.rb', line 104 def stream? @stream end |
#use_ldd? ⇒ Boolean
Whether to use the LaunchDarkly relay proxy in daemon mode. In this mode, we do not use polling or streaming to get feature flag updates from the server, but instead read them from a Redis instance that is updated by the proxy.
114 115 116 |
# File 'lib/ldclient-rb/config.rb', line 114 def use_ldd? @use_ldd end |