Module: Statsig
- Defined in:
- lib/id_list.rb,
lib/network.rb,
lib/statsig.rb,
lib/constants.rb,
lib/evaluator.rb,
lib/api_config.rb,
lib/hash_utils.rb,
lib/spec_store.rb,
lib/diagnostics.rb,
lib/config_result.rb,
lib/error_boundary.rb,
lib/statsig_errors.rb,
lib/statsig_logger.rb,
lib/evaluation_details.rb,
lib/interfaces/data_store.rb,
lib/client_initialize_helpers.rb,
lib/user_persistent_storage_utils.rb,
lib/interfaces/user_persistent_storage.rb
Defined Under Namespace
Modules: Const, EvaluationReason, Interfaces Classes: APICondition, APIConfig, APIRule, CheckGateOptions, ConfigResult, Diagnostics, ErrorBoundary, EvaluationDetails, Evaluator, GetConfigOptions, GetExperimentOptions, GetGateOptions, GetLayerOptions, HashUtils, IDList, InvalidSDKKeyResponse, Network, NetworkError, ResponseFormatter, SpecStore, StatsigLogger, UninitializedError, UserPersistentStorageUtils, ValueError
Class Method Summary collapse
-
.check_gate(user, gate_name, options = nil) ⇒ Boolean
Gets the boolean result of a gate, evaluated against the given user.
-
.check_gate_with_exposure_logging_disabled(user, gate_name) ⇒ Object
deprecated
Deprecated.
-
use check_gate(user, gate, options) and disable_exposure_logging in options
-
- .clear_config_overrides ⇒ Object
- .clear_gate_overrides ⇒ Object
-
.get_client_initialize_response(user, hash: 'sha256', client_sdk_key: nil, include_local_overrides: false) ⇒ Object
Gets all evaluated values for the given user.
-
.get_config(user, dynamic_config_name, options = nil) ⇒ DynamicConfig
Get the values of a dynamic config, evaluated against the given user.
-
.get_config_with_exposure_logging_disabled(user, dynamic_config_name) ⇒ DynamicConfig
deprecated
Deprecated.
-
use get_config(user, config, options) and disable_exposure_logging in options
-
-
.get_experiment(user, experiment_name, options = nil) ⇒ Object
Get the values of an experiment, evaluated against the given user.
-
.get_experiment_with_exposure_logging_disabled(user, experiment_name) ⇒ Object
deprecated
Deprecated.
-
use get_experiment(user, experiment, options) and disable_exposure_logging in options
-
-
.get_gate(user, gate_name, options) ⇒ FeatureGate
Gets the gate, evaluated against the given user.
-
.get_layer(user, layer_name, options = nil) ⇒ Object
Get the values of a layer, evaluated against the given user.
-
.get_layer_with_exposure_logging_disabled(user, layer_name) ⇒ Object
deprecated
Deprecated.
-
use get_layer(user, gate, options) and disable_exposure_logging in options
-
-
.get_statsig_metadata ⇒ Object
Internal Statsig metadata for this SDK.
- .get_user_persisted_values(user, id_type) ⇒ Object
-
.initialize(secret_key, options = nil, error_callback = nil) ⇒ Object
Initializes the Statsig SDK.
-
.list_autotunes ⇒ Object
Returns a list of all autotune names.
-
.list_configs ⇒ Object
Returns a list of all config names.
-
.list_experiments ⇒ Object
Returns a list of all experiment names.
-
.list_gates ⇒ Object
Returns a list of all gate names.
-
.list_layers ⇒ Object
Returns a list of all layer names.
-
.log_event(user, event_name, value = nil, metadata = nil) ⇒ Object
Logs an event to Statsig with the provided values.
-
.manually_log_config_exposure(user, dynamic_config) ⇒ Object
Logs an exposure event for the dynamic config.
-
.manually_log_experiment_exposure(user, experiment_name) ⇒ Object
Logs an exposure event for the experiment.
-
.manually_log_gate_exposure(user, gate_name) ⇒ Object
Logs an exposure event for the gate.
-
.manually_log_layer_parameter_exposure(user, layer_name, parameter_name) ⇒ Object
Logs an exposure event for the parameter in the given layer.
-
.override_config(config_name, config_value) ⇒ Object
Sets a value to be returned for the given dynamic config/experiment instead of the actual evaluated value.
-
.override_gate(gate_name, gate_value) ⇒ Object
Sets a value to be returned for the given gate instead of the actual evaluated value.
- .remove_config_override(config_name) ⇒ Object
- .remove_gate_override(gate_name) ⇒ Object
-
.shutdown ⇒ Object
Stops all Statsig activity and flushes any pending events.
- .sync_idlists ⇒ Object
- .sync_rulesets ⇒ Object
Class Method Details
.check_gate(user, gate_name, options = nil) ⇒ Boolean
Gets the boolean result of a gate, evaluated against the given user. An exposure event will automatically be logged for the gate.
62 63 64 65 |
# File 'lib/statsig.rb', line 62 def self.check_gate(user, gate_name, = nil) ensure_initialized @shared_instance&.check_gate(user, gate_name, ) end |
.check_gate_with_exposure_logging_disabled(user, gate_name) ⇒ Object
-
use check_gate(user, gate, options) and disable_exposure_logging in options
Gets the boolean result of a gate, evaluated against the given user.
73 74 75 76 |
# File 'lib/statsig.rb', line 73 def self.check_gate_with_exposure_logging_disabled(user, gate_name) ensure_initialized @shared_instance&.check_gate(user, gate_name, CheckGateOptions.new(disable_log_exposure: true)) end |
.clear_config_overrides ⇒ Object
329 330 331 332 |
# File 'lib/statsig.rb', line 329 def self.clear_config_overrides ensure_initialized @shared_instance&.clear_config_overrides end |
.clear_gate_overrides ⇒ Object
309 310 311 312 |
# File 'lib/statsig.rb', line 309 def self.clear_gate_overrides ensure_initialized @shared_instance&.clear_gate_overrides end |
.get_client_initialize_response(user, hash: 'sha256', client_sdk_key: nil, include_local_overrides: false) ⇒ Object
See Ruby Documentation: docs.statsig.com/server/rubySDK)
Gets all evaluated values for the given user. These values can then be given to a Statsig Client SDK via bootstrapping.
344 345 346 347 348 349 350 351 352 |
# File 'lib/statsig.rb', line 344 def self.get_client_initialize_response( user, hash: 'sha256', client_sdk_key: nil, include_local_overrides: false ) ensure_initialized @shared_instance&.get_client_initialize_response(user, hash, client_sdk_key, include_local_overrides) end |
.get_config(user, dynamic_config_name, options = nil) ⇒ DynamicConfig
Get the values of a dynamic config, evaluated against the given user. An exposure event will automatically be logged for the dynamic config.
105 106 107 108 |
# File 'lib/statsig.rb', line 105 def self.get_config(user, dynamic_config_name, = nil) ensure_initialized @shared_instance&.get_config(user, dynamic_config_name, ) end |
.get_config_with_exposure_logging_disabled(user, dynamic_config_name) ⇒ DynamicConfig
-
use get_config(user, config, options) and disable_exposure_logging in options
Get the values of a dynamic config, evaluated against the given user.
117 118 119 120 |
# File 'lib/statsig.rb', line 117 def self.get_config_with_exposure_logging_disabled(user, dynamic_config_name) ensure_initialized @shared_instance&.get_config(user, dynamic_config_name, GetConfigOptions.new(disable_log_exposure: true)) end |
.get_experiment(user, experiment_name, options = nil) ⇒ Object
Get the values of an experiment, evaluated against the given user. An exposure event will automatically be logged for the experiment.
149 150 151 152 |
# File 'lib/statsig.rb', line 149 def self.get_experiment(user, experiment_name, = nil) ensure_initialized @shared_instance&.get_experiment(user, experiment_name, ) end |
.get_experiment_with_exposure_logging_disabled(user, experiment_name) ⇒ Object
-
use get_experiment(user, experiment, options) and disable_exposure_logging in options
Get the values of an experiment, evaluated against the given user.
160 161 162 163 |
# File 'lib/statsig.rb', line 160 def self.get_experiment_with_exposure_logging_disabled(user, experiment_name) ensure_initialized @shared_instance&.get_experiment(user, experiment_name, GetExperimentOptions.new(disable_log_exposure: true)) end |
.get_gate(user, gate_name, options) ⇒ FeatureGate
Gets the gate, evaluated against the given user. An exposure event will automatically be logged for the gate.
40 41 42 43 |
# File 'lib/statsig.rb', line 40 def self.get_gate(user, gate_name, ) ensure_initialized @shared_instance&.get_gate(user, gate_name, ) end |
.get_layer(user, layer_name, options = nil) ⇒ Object
Get the values of a layer, evaluated against the given user. Exposure events will be fired when get or get_typed is called on the resulting Layer class.
196 197 198 199 |
# File 'lib/statsig.rb', line 196 def self.get_layer(user, layer_name, = nil) ensure_initialized @shared_instance&.get_layer(user, layer_name, ) end |
.get_layer_with_exposure_logging_disabled(user, layer_name) ⇒ Object
-
use get_layer(user, gate, options) and disable_exposure_logging in options
Get the values of a layer, evaluated against the given user.
207 208 209 210 |
# File 'lib/statsig.rb', line 207 def self.get_layer_with_exposure_logging_disabled(user, layer_name) ensure_initialized @shared_instance&.get_layer(user, layer_name, GetLayerOptions.new(disable_log_exposure: true)) end |
.get_statsig_metadata ⇒ Object
Internal Statsig metadata for this SDK
356 357 358 359 360 361 362 |
# File 'lib/statsig.rb', line 356 def self. { 'sdkType' => 'ruby-server', 'sdkVersion' => '1.33.2', 'languageVersion' => RUBY_VERSION } end |
.get_user_persisted_values(user, id_type) ⇒ Object
175 176 177 178 |
# File 'lib/statsig.rb', line 175 def self.get_user_persisted_values(user, id_type) ensure_initialized @shared_instance&.get_user_persisted_values(user, id_type) end |
.initialize(secret_key, options = nil, error_callback = nil) ⇒ Object
Initializes the Statsig SDK.
13 14 15 16 17 18 19 20 21 |
# File 'lib/statsig.rb', line 13 def self.initialize(secret_key, = nil, error_callback = nil) unless @shared_instance.nil? puts 'Statsig already initialized.' @shared_instance.maybe_restart_background_threads return @shared_instance end @shared_instance = StatsigDriver.new(secret_key, , error_callback) end |
.list_autotunes ⇒ Object
Returns a list of all autotune names
272 273 274 275 |
# File 'lib/statsig.rb', line 272 def self.list_autotunes ensure_initialized @shared_instance&.list_autotunes end |
.list_configs ⇒ Object
Returns a list of all config names
256 257 258 259 |
# File 'lib/statsig.rb', line 256 def self.list_configs ensure_initialized @shared_instance&.list_configs end |
.list_experiments ⇒ Object
Returns a list of all experiment names
264 265 266 267 |
# File 'lib/statsig.rb', line 264 def self.list_experiments ensure_initialized @shared_instance&.list_experiments end |
.list_gates ⇒ Object
Returns a list of all gate names
248 249 250 251 |
# File 'lib/statsig.rb', line 248 def self.list_gates ensure_initialized @shared_instance&.list_gates end |
.list_layers ⇒ Object
Returns a list of all layer names
280 281 282 283 |
# File 'lib/statsig.rb', line 280 def self.list_layers ensure_initialized @shared_instance&.list_layers end |
.log_event(user, event_name, value = nil, metadata = nil) ⇒ Object
Logs an event to Statsig with the provided values.
230 231 232 233 |
# File 'lib/statsig.rb', line 230 def self.log_event(user, event_name, value = nil, = nil) ensure_initialized @shared_instance&.log_event(user, event_name, value, ) end |
.manually_log_config_exposure(user, dynamic_config) ⇒ Object
Logs an exposure event for the dynamic config
127 128 129 130 |
# File 'lib/statsig.rb', line 127 def self.manually_log_config_exposure(user, dynamic_config) ensure_initialized @shared_instance&.manually_log_config_exposure(user, dynamic_config) end |
.manually_log_experiment_exposure(user, experiment_name) ⇒ Object
Logs an exposure event for the experiment
170 171 172 173 |
# File 'lib/statsig.rb', line 170 def self.manually_log_experiment_exposure(user, experiment_name) ensure_initialized @shared_instance&.manually_log_config_exposure(user, experiment_name) end |
.manually_log_gate_exposure(user, gate_name) ⇒ Object
Logs an exposure event for the gate
83 84 85 86 |
# File 'lib/statsig.rb', line 83 def self.manually_log_gate_exposure(user, gate_name) ensure_initialized @shared_instance&.manually_log_gate_exposure(user, gate_name) end |
.manually_log_layer_parameter_exposure(user, layer_name, parameter_name) ⇒ Object
Logs an exposure event for the parameter in the given layer
218 219 220 221 |
# File 'lib/statsig.rb', line 218 def self.manually_log_layer_parameter_exposure(user, layer_name, parameter_name) ensure_initialized @shared_instance&.manually_log_layer_parameter_exposure(user, layer_name, parameter_name) end |
.override_config(config_name, config_value) ⇒ Object
Sets a value to be returned for the given dynamic config/experiment instead of the actual evaluated value.
319 320 321 322 |
# File 'lib/statsig.rb', line 319 def self.override_config(config_name, config_value) ensure_initialized @shared_instance&.override_config(config_name, config_value) end |
.override_gate(gate_name, gate_value) ⇒ Object
Sets a value to be returned for the given gate instead of the actual evaluated value.
299 300 301 302 |
# File 'lib/statsig.rb', line 299 def self.override_gate(gate_name, gate_value) ensure_initialized @shared_instance&.override_gate(gate_name, gate_value) end |
.remove_config_override(config_name) ⇒ Object
324 325 326 327 |
# File 'lib/statsig.rb', line 324 def self.remove_config_override(config_name) ensure_initialized @shared_instance&.remove_config_override(config_name) end |
.remove_gate_override(gate_name) ⇒ Object
304 305 306 307 |
# File 'lib/statsig.rb', line 304 def self.remove_gate_override(gate_name) ensure_initialized @shared_instance&.remove_gate_override(gate_name) end |
.shutdown ⇒ Object
Stops all Statsig activity and flushes any pending events.
287 288 289 290 291 292 |
# File 'lib/statsig.rb', line 287 def self.shutdown if defined? @shared_instance and !@shared_instance.nil? @shared_instance.shutdown end @shared_instance = nil end |
.sync_idlists ⇒ Object
240 241 242 243 |
# File 'lib/statsig.rb', line 240 def self.sync_idlists ensure_initialized @shared_instance&.manually_sync_idlists end |
.sync_rulesets ⇒ Object
235 236 237 238 |
# File 'lib/statsig.rb', line 235 def self.sync_rulesets ensure_initialized @shared_instance&.manually_sync_rulesets end |