posthog-ruby 2.4.0 → 2.4.1

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: 82b54dc83e83826a9f0b9ba3b8fbacbdd6575f1f16bc2b1c051bdaf249501ef9
4
- data.tar.gz: aaea2cad50cc149f51224f4693edac7e177daaed821db12ba5a949fecb4d75d1
3
+ metadata.gz: 0b0fe64cbfa7e53a76fdd9241fb1eff4b428babe557ae8ee1ce62c2a287e42a5
4
+ data.tar.gz: afc4e5c842f2b38e8c2f9fa0247dfb4a01db2021ffccbb8d3e62f6acc904bf88
5
5
  SHA512:
6
- metadata.gz: 8a0f8cf3a6f108d96cabea6e31d58a9a13894a49e2d16473e6439bcfa7b025c0a9ee9c7812c7ca6072b5e2f2e9ecedb8467c8e0ab75771e87e1cebbf7b2c5e24
7
- data.tar.gz: ab37a07e0cc7e98c274d8cbf708915a96af1c671b8016d1c6158f674583eff1c29b42cebee1ed780f1ba99ec611321d3a9765cac0b9104da759fc3f727822cfa
6
+ metadata.gz: 23134246b45ee9c507e4fb52aca1539ecf2af4b036976f7f5a6c6fbe2dafc20f3a3da677014019f5366243b10f5c2b29521dc81e4911ea2820d966d21b5c54ea
7
+ data.tar.gz: 72dea55baf64ca45b28d5642e8881004a6f0f2dc5f9f43e30d27a3392949a3994a16d805ce20e7bf2ac9f94ddce3d1817df33b152664b0dc582170281f03587d
@@ -174,6 +174,7 @@ class PostHog
174
174
  # group_properties: {"organization": {"name": "PostHog", "employees": 11}}
175
175
  # ```
176
176
  def get_feature_flag(key, distinct_id, groups: {}, person_properties: {}, group_properties: {}, only_evaluate_locally: false, send_feature_flag_events: true)
177
+ person_properties, group_properties = add_local_person_and_group_properties(distinct_id, groups, person_properties, group_properties)
177
178
  feature_flag_response, flag_was_locally_evaluated = @feature_flags_poller.get_feature_flag(key, distinct_id, groups, person_properties, group_properties, only_evaluate_locally)
178
179
 
179
180
  feature_flag_reported_key = "#{key}_#{feature_flag_response}"
@@ -204,6 +205,7 @@ class PostHog
204
205
  #
205
206
  # @return [Hash] String (not symbol) key value pairs of flag and their values
206
207
  def get_all_flags(distinct_id, groups: {}, person_properties: {}, group_properties: {}, only_evaluate_locally: false)
208
+ person_properties, group_properties = add_local_person_and_group_properties(distinct_id, groups, person_properties, group_properties)
207
209
  return @feature_flags_poller.get_all_flags(distinct_id, groups, person_properties, group_properties, only_evaluate_locally)
208
210
  end
209
211
 
@@ -218,6 +220,7 @@ class PostHog
218
220
  # @option [Boolean] only_evaluate_locally
219
221
  #
220
222
  def get_feature_flag_payload(key, distinct_id, match_value: nil, groups: {}, person_properties: {}, group_properties: {}, only_evaluate_locally: false)
223
+ person_properties, group_properties = add_local_person_and_group_properties(distinct_id, groups, person_properties, group_properties)
221
224
  @feature_flags_poller.get_feature_flag_payload(key, distinct_id, match_value, groups, person_properties, group_properties, only_evaluate_locally)
222
225
  end
223
226
 
@@ -230,6 +233,7 @@ class PostHog
230
233
  # @option [Boolean] only_evaluate_locally
231
234
  #
232
235
  def get_all_flags_and_payloads(distinct_id, groups: {}, person_properties: {}, group_properties: {}, only_evaluate_locally: false)
236
+ person_properties, group_properties = add_local_person_and_group_properties(distinct_id, groups, person_properties, group_properties)
233
237
  @feature_flags_poller.get_all_flags_and_payloads(distinct_id, groups, person_properties, group_properties, only_evaluate_locally)
234
238
  end
235
239
 
@@ -288,5 +292,32 @@ class PostHog
288
292
  def worker_running?
289
293
  @worker_thread && @worker_thread.alive?
290
294
  end
295
+
296
+ def add_local_person_and_group_properties(distinct_id, groups, person_properties, group_properties)
297
+
298
+ groups ||= {}
299
+ person_properties ||= {}
300
+ group_properties ||= {}
301
+
302
+ symbolize_keys! groups
303
+ symbolize_keys! person_properties
304
+ symbolize_keys! group_properties
305
+
306
+ group_properties.each do |key, value|
307
+ symbolize_keys! value
308
+ end
309
+
310
+ all_person_properties = { "$current_distinct_id" => distinct_id }.merge(person_properties)
311
+
312
+ all_group_properties = {}
313
+ if groups
314
+ groups.each do |group_name, group_key|
315
+ all_group_properties[group_name] = {
316
+ "$group_key" => group_key}.merge(group_properties&.dig(group_name) || {})
317
+ end
318
+ end
319
+
320
+ return all_person_properties, all_group_properties
321
+ end
291
322
  end
292
323
  end
@@ -1,3 +1,3 @@
1
1
  class PostHog
2
- VERSION = '2.4.0'
2
+ VERSION = '2.4.1'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: posthog-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.0
4
+ version: 2.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - ''