Module: Statsig
- Extended by:
- T::Sig
- Defined in:
- lib/id_list.rb,
lib/network.rb,
lib/statsig.rb,
lib/evaluator.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/user_persistent_storage_utils.rb,
lib/interfaces/user_persistent_storage.rb
Overview
typed: true
Defined Under Namespace
Modules: EvaluationReason, Interfaces Classes: CheckGateOptions, ConfigResult, Diagnostics, ErrorBoundary, EvaluationDetails, Evaluator, GetConfigOptions, GetExperimentOptions, GetGateOptions, GetLayerOptions, HashUtils, IDList, InvalidSDKKeyResponse, Network, NetworkError, SpecStore, StatsigLogger, UninitializedError, UserPersistentStorageUtils, ValueError
Constant Summary collapse
- UserPersistedValues =
T.type_alias { T::Hash[String, Hash] }
Class Method Summary collapse
-
.check_gate(user, gate_name, options = CheckGateOptions.new) ⇒ Object
Gets the boolean result of a gate, evaluated against the given user.
-
.check_gate_with_exposure_logging_disabled(user, gate_name) ⇒ Object
Gets the boolean result of a gate, evaluated against the given user.
-
.get_client_initialize_response(user, hash: 'sha256', client_sdk_key: nil) ⇒ Object
Gets all evaluated values for the given user.
-
.get_config(user, dynamic_config_name, options = GetConfigOptions.new) ⇒ Object
Get the values of a dynamic config, evaluated against the given user.
-
.get_config_with_exposure_logging_disabled(user, dynamic_config_name) ⇒ Object
Get the values of a dynamic config, evaluated against the given user.
-
.get_experiment(user, experiment_name, options = GetExperimentOptions.new) ⇒ Object
Get the values of an experiment, evaluated against the given user.
-
.get_experiment_with_exposure_logging_disabled(user, experiment_name) ⇒ Object
Get the values of an experiment, evaluated against the given user.
-
.get_gate(user, gate_name, options = GetGateOptions.new) ⇒ Object
Gets the gate, evaluated against the given user.
-
.get_layer(user, layer_name, options = GetLayerOptions.new) ⇒ Object
Get the values of a layer, evaluated against the given user.
-
.get_layer_with_exposure_logging_disabled(user, layer_name) ⇒ Object
Get the values of a layer, evaluated against the given user.
-
.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.
-
.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 = CheckGateOptions.new) ⇒ Object
Gets the boolean result of a gate, evaluated against the given user. An exposure event will automatically be logged for the gate.
57 58 59 60 |
# File 'lib/statsig.rb', line 57 def self.check_gate(user, gate_name, = CheckGateOptions.new) ensure_initialized @shared_instance&.check_gate(user, gate_name, ) end |
.check_gate_with_exposure_logging_disabled(user, gate_name) ⇒ Object
Gets the boolean result of a gate, evaluated against the given user.
68 69 70 71 |
# File 'lib/statsig.rb', line 68 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 |
.get_client_initialize_response(user, hash: 'sha256', client_sdk_key: nil) ⇒ 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.
319 320 321 322 |
# File 'lib/statsig.rb', line 319 def self.get_client_initialize_response(user, hash: 'sha256', client_sdk_key: nil) ensure_initialized @shared_instance&.get_client_initialize_response(user, hash, client_sdk_key) end |
.get_config(user, dynamic_config_name, options = GetConfigOptions.new) ⇒ Object
Get the values of a dynamic config, evaluated against the given user. An exposure event will automatically be logged for the dynamic config.
95 96 97 98 |
# File 'lib/statsig.rb', line 95 def self.get_config(user, dynamic_config_name, = GetConfigOptions.new) ensure_initialized @shared_instance&.get_config(user, dynamic_config_name, ) end |
.get_config_with_exposure_logging_disabled(user, dynamic_config_name) ⇒ Object
Get the values of a dynamic config, evaluated against the given user.
106 107 108 109 |
# File 'lib/statsig.rb', line 106 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 = GetExperimentOptions.new) ⇒ Object
Get the values of an experiment, evaluated against the given user. An exposure event will automatically be logged for the experiment.
134 135 136 137 |
# File 'lib/statsig.rb', line 134 def self.get_experiment(user, experiment_name, = GetExperimentOptions.new) ensure_initialized @shared_instance&.get_experiment(user, experiment_name, ) end |
.get_experiment_with_exposure_logging_disabled(user, experiment_name) ⇒ Object
Get the values of an experiment, evaluated against the given user.
145 146 147 148 |
# File 'lib/statsig.rb', line 145 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 = GetGateOptions.new) ⇒ Object
Gets the gate, evaluated against the given user. An exposure event will automatically be logged for the gate.
41 42 43 44 |
# File 'lib/statsig.rb', line 41 def self.get_gate(user, gate_name, = GetGateOptions.new) ensure_initialized @shared_instance&.get_gate(user, gate_name, ) end |
.get_layer(user, layer_name, options = GetLayerOptions.new) ⇒ 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.
178 179 180 181 |
# File 'lib/statsig.rb', line 178 def self.get_layer(user, layer_name, = GetLayerOptions.new) ensure_initialized @shared_instance&.get_layer(user, layer_name, ) end |
.get_layer_with_exposure_logging_disabled(user, layer_name) ⇒ Object
Get the values of a layer, evaluated against the given user.
189 190 191 192 |
# File 'lib/statsig.rb', line 189 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
327 328 329 330 331 332 333 |
# File 'lib/statsig.rb', line 327 def self. { 'sdkType' => 'ruby-server', 'sdkVersion' => '1.31.1', 'languageVersion' => RUBY_VERSION } end |
.get_user_persisted_values(user, id_type) ⇒ Object
162 163 164 165 |
# File 'lib/statsig.rb', line 162 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.
17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/statsig.rb', line 17 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 self.bind_sorbet_loggers() @shared_instance = StatsigDriver.new(secret_key, , error_callback) end |
.list_autotunes ⇒ Object
Returns a list of all autotune names
263 264 265 266 |
# File 'lib/statsig.rb', line 263 def self.list_autotunes ensure_initialized @shared_instance&.list_autotunes end |
.list_configs ⇒ Object
Returns a list of all config names
245 246 247 248 |
# File 'lib/statsig.rb', line 245 def self.list_configs ensure_initialized @shared_instance&.list_configs end |
.list_experiments ⇒ Object
Returns a list of all experiment names
254 255 256 257 |
# File 'lib/statsig.rb', line 254 def self.list_experiments ensure_initialized @shared_instance&.list_experiments end |
.list_gates ⇒ Object
Returns a list of all gate names
236 237 238 239 |
# File 'lib/statsig.rb', line 236 def self.list_gates ensure_initialized @shared_instance&.list_gates end |
.list_layers ⇒ Object
Returns a list of all layer names
272 273 274 275 |
# File 'lib/statsig.rb', line 272 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.
217 218 219 220 |
# File 'lib/statsig.rb', line 217 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
117 118 119 120 |
# File 'lib/statsig.rb', line 117 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
156 157 158 159 |
# File 'lib/statsig.rb', line 156 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
79 80 81 82 |
# File 'lib/statsig.rb', line 79 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
201 202 203 204 |
# File 'lib/statsig.rb', line 201 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.
304 305 306 307 |
# File 'lib/statsig.rb', line 304 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.
293 294 295 296 |
# File 'lib/statsig.rb', line 293 def self.override_gate(gate_name, gate_value) ensure_initialized @shared_instance&.override_gate(gate_name, gate_value) end |
.shutdown ⇒ Object
Stops all Statsig activity and flushes any pending events.
280 281 282 283 284 285 |
# File 'lib/statsig.rb', line 280 def self.shutdown if defined? @shared_instance and !@shared_instance.nil? @shared_instance.shutdown end @shared_instance = nil end |
.sync_idlists ⇒ Object
227 228 229 230 |
# File 'lib/statsig.rb', line 227 def self.sync_idlists ensure_initialized @shared_instance&.manually_sync_idlists end |
.sync_rulesets ⇒ Object
222 223 224 225 |
# File 'lib/statsig.rb', line 222 def self.sync_rulesets ensure_initialized @shared_instance&.manually_sync_rulesets end |