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
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/ldclient-rb/config.rb', line 58 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.
179 180 181 |
# File 'lib/ldclient-rb/config.rb', line 179 def all_attributes_private @all_attributes_private end |
#base_uri ⇒ String (readonly)
The base URL for the LaunchDarkly server.
83 84 85 |
# File 'lib/ldclient-rb/config.rb', line 83 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.
155 156 157 |
# File 'lib/ldclient-rb/config.rb', line 155 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.
148 149 150 |
# File 'lib/ldclient-rb/config.rb', line 148 def capacity @capacity end |
#connect_timeout ⇒ Float (readonly)
The connect timeout for network connections in seconds.
167 168 169 |
# File 'lib/ldclient-rb/config.rb', line 167 def connect_timeout @connect_timeout end |
#events_uri ⇒ String (readonly)
The base URL for the LaunchDarkly events server.
95 96 97 |
# File 'lib/ldclient-rb/config.rb', line 95 def events_uri @events_uri end |
#feature_store ⇒ Object (readonly)
A store for feature flag configuration rules.
172 173 174 |
# File 'lib/ldclient-rb/config.rb', line 172 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.
126 127 128 |
# File 'lib/ldclient-rb/config.rb', line 126 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.
138 139 140 |
# File 'lib/ldclient-rb/config.rb', line 138 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
131 132 133 |
# File 'lib/ldclient-rb/config.rb', line 131 def poll_interval @poll_interval end |
#private_attribute_names ⇒ Object (readonly)
Returns the value of attribute private_attribute_names.
181 182 183 |
# File 'lib/ldclient-rb/config.rb', line 181 def private_attribute_names @private_attribute_names end |
#proxy ⇒ Object (readonly)
The proxy configuration string
177 178 179 |
# File 'lib/ldclient-rb/config.rb', line 177 def proxy @proxy end |
#read_timeout ⇒ Float (readonly)
The read timeout for network connections in seconds.
161 162 163 |
# File 'lib/ldclient-rb/config.rb', line 161 def read_timeout @read_timeout end |
#send_events ⇒ Object (readonly)
Whether to send events back to LaunchDarkly.
186 187 188 |
# File 'lib/ldclient-rb/config.rb', line 186 def send_events @send_events end |
#stream_uri ⇒ String (readonly)
The base URL for the LaunchDarkly streaming server.
89 90 91 |
# File 'lib/ldclient-rb/config.rb', line 89 def stream_uri @stream_uri end |
Class Method Details
.default ⇒ Config
The default LaunchDarkly client configuration. This configuration sets reasonable defaults for most users.
193 194 195 |
# File 'lib/ldclient-rb/config.rb', line 193 def self.default Config.new end |
.default_base_uri ⇒ Object
201 202 203 |
# File 'lib/ldclient-rb/config.rb', line 201 def self.default_base_uri "https://app.launchdarkly.com" end |
.default_cache_store ⇒ Object
213 214 215 |
# File 'lib/ldclient-rb/config.rb', line 213 def self.default_cache_store defined?(Rails) && Rails.respond_to?(:cache) ? Rails.cache : ThreadSafeMemoryStore.new end |
.default_capacity ⇒ Object
197 198 199 |
# File 'lib/ldclient-rb/config.rb', line 197 def self.default_capacity 10000 end |
.default_connect_timeout ⇒ Object
225 226 227 |
# File 'lib/ldclient-rb/config.rb', line 225 def self.default_connect_timeout 2 end |
.default_events_uri ⇒ Object
209 210 211 |
# File 'lib/ldclient-rb/config.rb', line 209 def self.default_events_uri "https://events.launchdarkly.com" end |
.default_feature_store ⇒ Object
251 252 253 |
# File 'lib/ldclient-rb/config.rb', line 251 def self.default_feature_store InMemoryFeatureStore.new end |
.default_flush_interval ⇒ Object
217 218 219 |
# File 'lib/ldclient-rb/config.rb', line 217 def self.default_flush_interval 10 end |
.default_logger ⇒ Object
233 234 235 236 237 238 239 240 241 |
# File 'lib/ldclient-rb/config.rb', line 233 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
255 256 257 |
# File 'lib/ldclient-rb/config.rb', line 255 def self.default_offline false end |
.default_poll_interval ⇒ Object
259 260 261 |
# File 'lib/ldclient-rb/config.rb', line 259 def self.default_poll_interval 30 end |
.default_proxy ⇒ Object
229 230 231 |
# File 'lib/ldclient-rb/config.rb', line 229 def self.default_proxy nil end |
.default_read_timeout ⇒ Object
221 222 223 |
# File 'lib/ldclient-rb/config.rb', line 221 def self.default_read_timeout 10 end |
.default_send_events ⇒ Object
263 264 265 |
# File 'lib/ldclient-rb/config.rb', line 263 def self.default_send_events true end |
.default_stream ⇒ Object
243 244 245 |
# File 'lib/ldclient-rb/config.rb', line 243 def self.default_stream true end |
.default_stream_uri ⇒ Object
205 206 207 |
# File 'lib/ldclient-rb/config.rb', line 205 def self.default_stream_uri "https://stream.launchdarkly.com" end |
.default_use_ldd ⇒ Object
247 248 249 |
# File 'lib/ldclient-rb/config.rb', line 247 def self.default_use_ldd false end |
Instance Method Details
#offline? ⇒ Boolean
TODO docs
117 118 119 |
# File 'lib/ldclient-rb/config.rb', line 117 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.
102 103 104 |
# File 'lib/ldclient-rb/config.rb', line 102 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.
112 113 114 |
# File 'lib/ldclient-rb/config.rb', line 112 def use_ldd? @use_ldd end |