module Statsig

Public Class Methods

check_gate(user, gate_name) click to toggle source
# File lib/statsig.rb, line 13
def self.check_gate(user, gate_name)
  self.ensure_initialized
  @shared_instance&.check_gate(user, gate_name)
end
get_config(user, dynamic_config_name) click to toggle source
# File lib/statsig.rb, line 18
def self.get_config(user, dynamic_config_name)
  self.ensure_initialized
  @shared_instance&.get_config(user, dynamic_config_name)
end
get_experiment(user, experiment_name) click to toggle source
# File lib/statsig.rb, line 23
def self.get_experiment(user, experiment_name)
  self.ensure_initialized
  @shared_instance&.get_config(user, experiment_name)
end
initialize(secret_key, options = nil) click to toggle source
# File lib/statsig.rb, line 4
def self.initialize(secret_key, options = nil)
  unless @shared_instance.nil?
    puts 'Statsig already initialized.'
    return @shared_instance
  end

  @shared_instance = StatsigDriver.new(secret_key, options)
end
log_event(user, event_name, value, metadata) click to toggle source
# File lib/statsig.rb, line 28
def self.log_event(user, event_name, value, metadata)
  self.ensure_initialized
  @shared_instance&.log_event(user, event_name, value, metadata)
end
shutdown() click to toggle source
# File lib/statsig.rb, line 33
def self.shutdown
  unless @shared_instance.nil?
    @shared_instance.shutdown
  end
  @shared_instance = nil
end

Private Class Methods

ensure_initialized() click to toggle source
# File lib/statsig.rb, line 42
def self.ensure_initialized
  if @shared_instance.nil?
    raise 'Must call initialize first.'
  end
end