statsig 2.5.3 → 2.5.5

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9d2ed9517e4a8bdddd46fe4f7a143e97a4ad53ad421d2e5f66448b0a88b0c302
4
- data.tar.gz: 23d4b29f5d3c8b456368f05a6d6caefab468b3aa5fb63e90ac0b897180619c13
3
+ metadata.gz: c340de8172bac9c10e0af76b1b34dce4dc812b19f9e33fbf19e67b54ddb90f4a
4
+ data.tar.gz: a49b6298cc34ff28a2133ecc96518e66f4c622bb65f163a6468eb6310e53f027
5
5
  SHA512:
6
- metadata.gz: f685c8419d3b2817ff26ed749552981462597ec660b019851e43f4df60ac1b61533df86282d7fb40b6212e328f2443549f9501b91cf9be92b3644233b892dcbc
7
- data.tar.gz: 5faf75601f2ceed7bd6056db6fe8a9f646f7150f18f381d85943ad6ff304d5b1ba76757a91e0d28fbbfd25ced2aa3ec830cdd3ed08e19e0f1bdaae9febce9800
6
+ metadata.gz: f4182f35cff27c25b80d1add5f4e7482021f834711a9a31d99ade432b9366a0f56da18b8a5022797fd9105a87efee40ef19ed3e243ce9d17d94259613f34dec9
7
+ data.tar.gz: 456e3f74f8cbb17f0be3aa256381349214df363298603da260bae951b570c8ffe4eac9bf2bc8156af31e6a6c4404e349e3bbbb664606c81f4fc23b1265b99ea5
@@ -31,7 +31,6 @@ module Statsig
31
31
  end
32
32
 
33
33
  def self.to_response(config_name, config_spec, evaluator, user, client_sdk_key, hash_algo, include_exposures, include_local_overrides)
34
- config_name_str = config_name.to_s
35
34
  category = config_spec[:type]
36
35
  entity_type = config_spec[:entity]
37
36
  if entity_type == Const::TYPE_SEGMENT || entity_type == Const::TYPE_HOLDOUT
@@ -47,6 +46,7 @@ module Statsig
47
46
  end
48
47
  end
49
48
 
49
+ config_name_str = config_name.to_s
50
50
  if local_override.nil?
51
51
  eval_result = ConfigResult.new(
52
52
  name: config_name,
@@ -124,14 +124,6 @@ module Statsig
124
124
 
125
125
  result[:is_in_layer] = true
126
126
  result[:explicit_parameters] = config_spec[:explicitParameters] || []
127
-
128
- layer_name = evaluator.spec_store.experiment_to_layer[config_name]
129
- if layer_name.nil? || evaluator.spec_store.layers[layer_name].nil?
130
- return
131
- end
132
-
133
- layer = evaluator.spec_store.layers[layer_name]
134
- result[:value] = layer[:defaultValue].merge(result[:value])
135
127
  end
136
128
 
137
129
  def self.populate_layer_fields(config_spec, eval_result, result, evaluator, hash_algo, include_exposures)
@@ -153,13 +145,15 @@ module Statsig
153
145
  end
154
146
 
155
147
  def self.hash_name(name, hash_algo)
156
- case hash_algo
157
- when Statsig::Const::NONE
158
- return name
159
- when Statsig::Const::DJB2
160
- return Statsig::HashUtils.djb2(name)
161
- else
162
- return Statsig::HashUtils.sha256(name)
148
+ Statsig::Memo.for_global(:hash_name, "#{hash_algo}|#{name}") do
149
+ case hash_algo
150
+ when Statsig::Const::NONE
151
+ name
152
+ when Statsig::Const::DJB2
153
+ Statsig::HashUtils.djb2(name)
154
+ else
155
+ Statsig::HashUtils.sha256(name)
156
+ end
163
157
  end
164
158
  end
165
159
  end
data/lib/evaluator.rb CHANGED
@@ -231,7 +231,7 @@ module Statsig
231
231
  group_size = 10_000.0 / cmab[:groups].length
232
232
  group = cmab[:groups][(hash % 10_000) / group_size]
233
233
  end_result.json_value = group[:parameterValues]
234
- end_result.rule_id = group[:id]
234
+ end_result.rule_id = group[:id] + Const::EXPLORE
235
235
  end_result.group_name = group[:name]
236
236
  end_result.is_experiment_group = true
237
237
  finalize_cmab_eval_result(cmab, end_result, did_pass: true)
data/lib/statsig.rb CHANGED
@@ -386,7 +386,7 @@ module Statsig
386
386
  def self.get_statsig_metadata
387
387
  {
388
388
  'sdkType' => 'ruby-server',
389
- 'sdkVersion' => '2.5.3',
389
+ 'sdkVersion' => '2.5.5',
390
390
  'languageVersion' => RUBY_VERSION
391
391
  }
392
392
  end
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.5.3
4
+ version: 2.5.5
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-06-20 00:00:00.000000000 Z
11
+ date: 2025-08-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -226,14 +226,14 @@ dependencies:
226
226
  requirements:
227
227
  - - "~>"
228
228
  - !ruby/object:Gem::Version
229
- version: 2.15.0
229
+ version: 2.18.0
230
230
  type: :runtime
231
231
  prerelease: false
232
232
  version_requirements: !ruby/object:Gem::Requirement
233
233
  requirements:
234
234
  - - "~>"
235
235
  - !ruby/object:Gem::Version
236
- version: 2.15.0
236
+ version: 2.18.0
237
237
  - !ruby/object:Gem::Dependency
238
238
  name: http
239
239
  requirement: !ruby/object:Gem::Requirement