Module: Statsig

Defined in:
lib/id_list.rb,
lib/network.rb,
lib/statsig.rb,
lib/evaluator.rb,
lib/spec_store.rb,
lib/config_result.rb,
lib/statsig_logger.rb,
lib/evaluation_details.rb,
lib/interfaces/data_store.rb

Defined Under Namespace

Modules: EvaluationReason, Interfaces Classes: ConfigResult, EvaluationDetails, Evaluator, IDList, Network, SpecStore, StatsigLogger

Class Method Summary collapse

Class Method Details

.check_gate(user, gate_name) ⇒ Object



14
15
16
17
# File 'lib/statsig.rb', line 14

def self.check_gate(user, gate_name)
  ensure_initialized
  @shared_instance&.check_gate(user, gate_name)
end

.get_client_initialize_response(user) ⇒ Object



56
57
58
59
# File 'lib/statsig.rb', line 56

def self.get_client_initialize_response(user)
  ensure_initialized
  @shared_instance&.get_client_initialize_response(user)
end

.get_config(user, dynamic_config_name) ⇒ Object



19
20
21
22
# File 'lib/statsig.rb', line 19

def self.get_config(user, dynamic_config_name)
  ensure_initialized
  @shared_instance&.get_config(user, dynamic_config_name)
end

.get_experiment(user, experiment_name) ⇒ Object



24
25
26
27
# File 'lib/statsig.rb', line 24

def self.get_experiment(user, experiment_name)
  ensure_initialized
  @shared_instance&.get_experiment(user, experiment_name)
end

.get_layer(user, layer_name) ⇒ Object



29
30
31
32
# File 'lib/statsig.rb', line 29

def self.get_layer(user, layer_name)
  ensure_initialized
  @shared_instance&.get_layer(user, layer_name)
end

.get_statsig_metadataObject



61
62
63
64
65
66
# File 'lib/statsig.rb', line 61

def self.
  {
    'sdkType' => 'ruby-server',
    'sdkVersion' => '1.16.2',
  }
end

.initialize(secret_key, options = nil, error_callback = nil) ⇒ Object



4
5
6
7
8
9
10
11
12
# File 'lib/statsig.rb', line 4

def self.initialize(secret_key, options = 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, options, error_callback)
end

.log_event(user, event_name, value = nil, metadata = nil) ⇒ Object



34
35
36
37
# File 'lib/statsig.rb', line 34

def self.log_event(user, event_name, value = nil,  = nil)
  ensure_initialized
  @shared_instance&.log_event(user, event_name, value, )
end

.override_config(config_name, config_value) ⇒ Object



51
52
53
54
# File 'lib/statsig.rb', line 51

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



46
47
48
49
# File 'lib/statsig.rb', line 46

def self.override_gate(gate_name, gate_value)
  ensure_initialized
  @shared_instance&.override_gate(gate_name, gate_value)
end

.shutdownObject



39
40
41
42
43
44
# File 'lib/statsig.rb', line 39

def self.shutdown
  unless @shared_instance.nil?
    @shared_instance.shutdown
  end
  @shared_instance = nil
end