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
Overview
typed: true
Defined Under Namespace
Modules: EvaluationReason, Interfaces Classes: ConfigResult, Diagnostics, ErrorBoundary, EvaluationDetails, Evaluator, HashUtils, IDList, Network, NetworkError, SpecStore, StatsigLogger, UninitializedError, ValueError
Class Method Summary collapse
-
.check_gate(user, gate_name) ⇒ 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) ⇒ 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) ⇒ 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_layer(user, layer_name) ⇒ 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.
-
.initialize(secret_key, options = nil, error_callback = nil) ⇒ Object
Initializes the Statsig SDK.
-
.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.
Class Method Details
.check_gate(user, gate_name) ⇒ Object
Gets the boolean result of a gate, evaluated against the given user. An exposure event will automatically be logged for the gate.
35 36 37 38 |
# File 'lib/statsig.rb', line 35 def self.check_gate(user, gate_name) 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.
46 47 48 49 |
# File 'lib/statsig.rb', line 46 def self.check_gate_with_exposure_logging_disabled(user, gate_name) ensure_initialized @shared_instance&.check_gate(user, gate_name, StatsigDriver::CheckGateOptions.new(log_exposure: false)) 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.
221 222 223 224 |
# File 'lib/statsig.rb', line 221 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) ⇒ Object
Get the values of a dynamic config, evaluated against the given user. An exposure event will automatically be logged for the dynamic config.
68 69 70 71 |
# File 'lib/statsig.rb', line 68 def self.get_config(user, dynamic_config_name) 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.
79 80 81 82 |
# File 'lib/statsig.rb', line 79 def self.get_config_with_exposure_logging_disabled(user, dynamic_config_name) ensure_initialized @shared_instance&.get_config(user, dynamic_config_name, StatsigDriver::GetConfigOptions.new(log_exposure: false)) end |
.get_experiment(user, experiment_name) ⇒ Object
Get the values of an experiment, evaluated against the given user. An exposure event will automatically be logged for the experiment.
101 102 103 104 |
# File 'lib/statsig.rb', line 101 def self.get_experiment(user, experiment_name) 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.
112 113 114 115 |
# File 'lib/statsig.rb', line 112 def self.get_experiment_with_exposure_logging_disabled(user, experiment_name) ensure_initialized @shared_instance&.get_experiment(user, experiment_name, StatsigDriver::GetExperimentOptions.new(log_exposure: false)) end |
.get_layer(user, layer_name) ⇒ 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.
135 136 137 138 |
# File 'lib/statsig.rb', line 135 def self.get_layer(user, layer_name) 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.
146 147 148 149 |
# File 'lib/statsig.rb', line 146 def self.get_layer_with_exposure_logging_disabled(user, layer_name) ensure_initialized @shared_instance&.get_layer(user, layer_name, StatsigDriver::GetLayerOptions.new(log_exposure: false)) end |
.get_statsig_metadata ⇒ Object
Internal Statsig metadata for this SDK
229 230 231 232 233 234 |
# File 'lib/statsig.rb', line 229 def self. { 'sdkType' => 'ruby-server', 'sdkVersion' => '1.26.0', } 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 |
.log_event(user, event_name, value = nil, metadata = nil) ⇒ Object
Logs an event to Statsig with the provided values.
174 175 176 177 |
# File 'lib/statsig.rb', line 174 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
90 91 92 93 |
# File 'lib/statsig.rb', line 90 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
123 124 125 126 |
# File 'lib/statsig.rb', line 123 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
57 58 59 60 |
# File 'lib/statsig.rb', line 57 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
158 159 160 161 |
# File 'lib/statsig.rb', line 158 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.
206 207 208 209 |
# File 'lib/statsig.rb', line 206 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.
195 196 197 198 |
# File 'lib/statsig.rb', line 195 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.
182 183 184 185 186 187 |
# File 'lib/statsig.rb', line 182 def self.shutdown if defined? @shared_instance and !@shared_instance.nil? @shared_instance.shutdown end @shared_instance = nil end |