statsig 2.6.0 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/statsig.rb +21 -1
  3. data/lib/statsig_driver.rb +27 -0
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2e43e289ee71055ef26a191a9daf4d54eb4f6a5dbacb8eb6a9160d1f66c07470
4
- data.tar.gz: 7c457bd018afe66c60c7ba2d1091b6b0c3054487d50cae69c02ebf640d367acf
3
+ metadata.gz: 03e6d3622747b21150f1b9af0da570e2771c1a2794eeb0806decda2a358f5530
4
+ data.tar.gz: 6368ec902764c9347d56690d2369dd17763adea6b54dc18228e7fde41fab729c
5
5
  SHA512:
6
- metadata.gz: 80cf6fe68efe3a458f2e9c6637ea6433d7f6ed93110da01fb0c771ea5cd409623b0f721ecc651810e9146d3796b19c23931396407aae64357795dab6424e7d1d
7
- data.tar.gz: 496ead0234ed956e4d2077cfea9cd95d755a0f7e036c32c7c9504c727f153a511771465c4a0774b94e4243805c6002056fe96f8434257401770622ff7ae5fe4a
6
+ metadata.gz: 3ff3889f41fdcf86498dfbc7c8865e1a7d02236e75adaa2e6bf98afd4f6e8803506248e4c14f23346764f02ce8c957e4f66dfd9923047bc382084de976f08d79
7
+ data.tar.gz: def37cb5444b646dbe4e04057f5661ec1c58509c687b0b25014bb1078cec5bda4fb4a48291bd00afe9e82ed2877717dfd47e19f587aa30f0cb89e4009a9b183a
data/lib/statsig.rb CHANGED
@@ -92,6 +92,11 @@ module Statsig
92
92
  @shared_instance&.manually_log_gate_exposure(user, gate_name)
93
93
  end
94
94
 
95
+ def self.get_fields_used_for_gate(gate_name)
96
+ ensure_initialized
97
+ @shared_instance&.get_fields_used_for_gate(gate_name)
98
+ end
99
+
95
100
  class GetConfigOptions
96
101
  attr_accessor :disable_log_exposure, :disable_evaluation_details, :ignore_local_overrides
97
102
 
@@ -136,6 +141,11 @@ module Statsig
136
141
  @shared_instance&.manually_log_config_exposure(user, dynamic_config)
137
142
  end
138
143
 
144
+ def self.get_fields_used_for_config(config_name)
145
+ ensure_initialized
146
+ @shared_instance&.get_fields_used_for_config(config_name)
147
+ end
148
+
139
149
  class GetExperimentOptions
140
150
  attr_accessor :disable_log_exposure, :user_persisted_values, :disable_evaluation_details, :ignore_local_overrides
141
151
 
@@ -184,6 +194,11 @@ module Statsig
184
194
  @shared_instance&.get_user_persisted_values(user, id_type)
185
195
  end
186
196
 
197
+ def self.get_fields_used_for_experiment(experiment_name)
198
+ ensure_initialized
199
+ @shared_instance&.get_fields_used_for_config(experiment_name)
200
+ end
201
+
187
202
  class GetLayerOptions
188
203
  attr_accessor :disable_log_exposure, :disable_evaluation_details
189
204
 
@@ -227,6 +242,11 @@ module Statsig
227
242
  @shared_instance&.manually_log_layer_parameter_exposure(user, layer_name, parameter_name)
228
243
  end
229
244
 
245
+ def self.get_fields_used_for_layer(layer_name)
246
+ ensure_initialized
247
+ @shared_instance&.get_fields_used_for_layer(layer_name)
248
+ end
249
+
230
250
  ##
231
251
  # Logs an event to Statsig with the provided values.
232
252
  #
@@ -386,7 +406,7 @@ module Statsig
386
406
  def self.get_statsig_metadata
387
407
  {
388
408
  'sdkType' => 'ruby-server',
389
- 'sdkVersion' => '2.6.0',
409
+ 'sdkVersion' => '2.7.0',
390
410
  'languageVersion' => RUBY_VERSION
391
411
  }
392
412
  end
@@ -117,6 +117,15 @@ class StatsigDriver
117
117
  end
118
118
  end
119
119
 
120
+ def get_fields_used_for_gate(gate_name)
121
+ @err_boundary.capture(caller: __method__, recover: -> { [] }) do
122
+ gate = @store.get_gate(gate_name)
123
+ return [] if gate.nil?
124
+
125
+ gate[:fieldsUsed] || []
126
+ end
127
+ end
128
+
120
129
  def get_config(user, dynamic_config_name, options = nil)
121
130
  @err_boundary.capture(caller: __method__, recover: -> { DynamicConfig.new(dynamic_config_name) }) do
122
131
  run_with_diagnostics(caller: :get_config) do
@@ -132,6 +141,15 @@ class StatsigDriver
132
141
  end
133
142
  end
134
143
 
144
+ def get_fields_used_for_config(config_name)
145
+ @err_boundary.capture(caller: __method__, recover: -> { [] }) do
146
+ config = @store.get_config(config_name)
147
+ return [] if config.nil?
148
+
149
+ config[:fieldsUsed] || []
150
+ end
151
+ end
152
+
135
153
  def get_experiment(user, experiment_name, options = nil)
136
154
  @err_boundary.capture(caller: __method__, recover: -> { DynamicConfig.new(experiment_name) }) do
137
155
  run_with_diagnostics(caller: :get_experiment) do
@@ -201,6 +219,15 @@ class StatsigDriver
201
219
  end
202
220
  end
203
221
 
222
+ def get_fields_used_for_layer(layer_name)
223
+ @err_boundary.capture(caller: __method__, recover: -> { [] }) do
224
+ layer = @store.get_layer(layer_name)
225
+ return [] if layer.nil?
226
+
227
+ layer[:fieldsUsed] || []
228
+ end
229
+ end
230
+
204
231
  def log_event(user, event_name, value = nil, metadata = nil)
205
232
  @err_boundary.capture(caller: __method__) do
206
233
  if !user.nil? && !user.instance_of?(StatsigUser)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: statsig
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.0
4
+ version: 2.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Statsig, Inc
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-10-09 00:00:00.000000000 Z
11
+ date: 2025-10-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler