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
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/ldclient-rb/config.rb', line 57 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] > 1 ? 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.
178 179 180 |
# File 'lib/ldclient-rb/config.rb', line 178 def all_attributes_private @all_attributes_private end |
#base_uri ⇒ String (readonly)
The base URL for the LaunchDarkly server.
82 83 84 |
# File 'lib/ldclient-rb/config.rb', line 82 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.
154 155 156 |
# File 'lib/ldclient-rb/config.rb', line 154 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.
147 148 149 |
# File 'lib/ldclient-rb/config.rb', line 147 def capacity @capacity end |
#connect_timeout ⇒ Float (readonly)
The connect timeout for network connections in seconds.
166 167 168 |
# File 'lib/ldclient-rb/config.rb', line 166 def connect_timeout @connect_timeout end |
#events_uri ⇒ String (readonly)
The base URL for the LaunchDarkly events server.
94 95 96 |
# File 'lib/ldclient-rb/config.rb', line 94 def events_uri @events_uri end |
#feature_store ⇒ Object (readonly)
A store for feature flag configuration rules.
171 172 173 |
# File 'lib/ldclient-rb/config.rb', line 171 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.
125 126 127 |
# File 'lib/ldclient-rb/config.rb', line 125 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.
137 138 139 |
# File 'lib/ldclient-rb/config.rb', line 137 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
130 131 132 |
# File 'lib/ldclient-rb/config.rb', line 130 def poll_interval @poll_interval end |
#private_attribute_names ⇒ Object (readonly)
Returns the value of attribute private_attribute_names.
180 181 182 |
# File 'lib/ldclient-rb/config.rb', line 180 def private_attribute_names @private_attribute_names end |
#proxy ⇒ Object (readonly)
The proxy configuration string
176 177 178 |
# File 'lib/ldclient-rb/config.rb', line 176 def proxy @proxy end |
#read_timeout ⇒ Float (readonly)
The read timeout for network connections in seconds.
160 161 162 |
# File 'lib/ldclient-rb/config.rb', line 160 def read_timeout @read_timeout end |
#send_events ⇒ Object (readonly)
Whether to send events back to LaunchDarkly.
185 186 187 |
# File 'lib/ldclient-rb/config.rb', line 185 def send_events @send_events end |
#stream_uri ⇒ String (readonly)
The base URL for the LaunchDarkly streaming server.
88 89 90 |
# File 'lib/ldclient-rb/config.rb', line 88 def stream_uri @stream_uri end |
Class Method Details
.default ⇒ Config
The default LaunchDarkly client configuration. This configuration sets reasonable defaults for most users.
192 193 194 |
# File 'lib/ldclient-rb/config.rb', line 192 def self.default Config.new end |
.default_base_uri ⇒ Object
200 201 202 |
# File 'lib/ldclient-rb/config.rb', line 200 def self.default_base_uri "https://app.launchdarkly.com" end |
.default_cache_store ⇒ Object
212 213 214 |
# File 'lib/ldclient-rb/config.rb', line 212 def self.default_cache_store defined?(Rails) && Rails.respond_to?(:cache) ? Rails.cache : ThreadSafeMemoryStore.new end |
.default_capacity ⇒ Object
196 197 198 |
# File 'lib/ldclient-rb/config.rb', line 196 def self.default_capacity 10000 end |
.default_connect_timeout ⇒ Object
224 225 226 |
# File 'lib/ldclient-rb/config.rb', line 224 def self.default_connect_timeout 2 end |
.default_events_uri ⇒ Object
208 209 210 |
# File 'lib/ldclient-rb/config.rb', line 208 def self.default_events_uri "https://events.launchdarkly.com" end |
.default_feature_store ⇒ Object
250 251 252 |
# File 'lib/ldclient-rb/config.rb', line 250 def self.default_feature_store InMemoryFeatureStore.new end |
.default_flush_interval ⇒ Object
216 217 218 |
# File 'lib/ldclient-rb/config.rb', line 216 def self.default_flush_interval 10 end |
.default_logger ⇒ Object
232 233 234 235 236 237 238 239 240 |
# File 'lib/ldclient-rb/config.rb', line 232 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
254 255 256 |
# File 'lib/ldclient-rb/config.rb', line 254 def self.default_offline false end |
.default_poll_interval ⇒ Object
258 259 260 |
# File 'lib/ldclient-rb/config.rb', line 258 def self.default_poll_interval 1 end |
.default_proxy ⇒ Object
228 229 230 |
# File 'lib/ldclient-rb/config.rb', line 228 def self.default_proxy nil end |
.default_read_timeout ⇒ Object
220 221 222 |
# File 'lib/ldclient-rb/config.rb', line 220 def self.default_read_timeout 10 end |
.default_send_events ⇒ Object
262 263 264 |
# File 'lib/ldclient-rb/config.rb', line 262 def self.default_send_events true end |
.default_stream ⇒ Object
242 243 244 |
# File 'lib/ldclient-rb/config.rb', line 242 def self.default_stream true end |
.default_stream_uri ⇒ Object
204 205 206 |
# File 'lib/ldclient-rb/config.rb', line 204 def self.default_stream_uri "https://stream.launchdarkly.com" end |
.default_use_ldd ⇒ Object
246 247 248 |
# File 'lib/ldclient-rb/config.rb', line 246 def self.default_use_ldd false end |
Instance Method Details
#offline? ⇒ Boolean
TODO docs
116 117 118 |
# File 'lib/ldclient-rb/config.rb', line 116 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.
101 102 103 |
# File 'lib/ldclient-rb/config.rb', line 101 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.
111 112 113 |
# File 'lib/ldclient-rb/config.rb', line 111 def use_ldd? @use_ldd end |