magick-feature-flags 0.9.5 → 0.9.6

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: db6e3bc7c41ca6efc8b8d1e0c3a37bb12ee979f012bb76482b7e45e65b89d2c9
4
- data.tar.gz: fb85c3f115744839d1fcc909e4bb495c3182bddd70977f4a6db525efe4d67e81
3
+ metadata.gz: c89e62bee50614e51b3e844968d557e90217cd48e77bb68ec50c47d48881389b
4
+ data.tar.gz: d39574add8463bb4a927ea94db047d3418317d966b77f400892f67ed6bf4a31c
5
5
  SHA512:
6
- metadata.gz: 895c93c5620618068c67643a1d5d989e385dd8c311714cf7af1e0b910a1b32f79739c55f3b7a8f987e73ea58dc7795b381fa2590dcd5bc73a0f4767578cbdb87
7
- data.tar.gz: 677a4ec77be3a13ed1c18ddd37c7609aff6c151dfff0be9a975d40742bb26b6adc86ed9e9c10e57490d665e3e3ec0fc685e36c7f272d16a4688a2829faa26419
6
+ metadata.gz: 133bbce3e15f14c39181eaf2078e0bec80fcc2aa295d85397bcb78f95400637e046dd9749f5c8ed65291f2c2e8b562ac8ced6b3df39dd3d625536a58851cefbb
7
+ data.tar.gz: 3a8578be1de567da37d0393e07302934176100bed9d9239bad978c757ed65a6f58770cc3a9b6b6fb5d73fd2393007053bc43c32b466b9bd167e97d5e775c6be0
@@ -86,6 +86,12 @@ module Magick
86
86
  (memory_features + redis_features).uniq
87
87
  end
88
88
 
89
+ # Explicitly trigger cache invalidation for a feature
90
+ # This is useful for targeting updates that need immediate cache invalidation
91
+ def invalidate_cache(feature_name)
92
+ publish_cache_invalidation(feature_name)
93
+ end
94
+
89
95
  private
90
96
 
91
97
  attr_reader :memory_adapter, :redis_adapter, :circuit_breaker
@@ -74,7 +74,7 @@ module Magick
74
74
  return false if status == :inactive
75
75
  return false if status == :deprecated && !context[:allow_deprecated]
76
76
 
77
- # Note: We don't check dependencies here because:
77
+ # NOTE: We don't check dependencies here because:
78
78
  # - Main features can be enabled independently
79
79
  # - Dependencies are only prevented from being enabled if the main feature is disabled
80
80
  # - The dependency check is handled in the enable() method, not in enabled?()
@@ -463,6 +463,7 @@ module Magick
463
463
  def delete
464
464
  adapter_registry.delete(name)
465
465
  @stored_value = nil
466
+ @stored_value_initialized = false # Reset initialization flag so get_value returns default_value
466
467
  @targeting = {}
467
468
  # Also remove from Magick.features if registered
468
469
  Magick.features.delete(name.to_s)
@@ -822,11 +823,20 @@ module Magick
822
823
  end
823
824
 
824
825
  def save_targeting
826
+ # Save targeting to adapter (this triggers cache invalidation via Pub/Sub)
825
827
  adapter_registry.set(name, 'targeting', targeting)
828
+
826
829
  # Update the feature in Magick.features if it's registered
827
830
  return unless Magick.features.key?(name)
828
831
 
829
832
  Magick.features[name].instance_variable_set(:@targeting, targeting.dup)
833
+
834
+ # Explicitly trigger cache invalidation for targeting updates
835
+ # Targeting changes affect enabled? checks, so we need immediate cache invalidation
836
+ # even if async updates are enabled
837
+ return unless adapter_registry.respond_to?(:invalidate_cache)
838
+
839
+ adapter_registry.invalidate_cache(name)
830
840
  end
831
841
 
832
842
  def default_for_type
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Magick
4
- VERSION = '0.9.5'
4
+ VERSION = '0.9.6'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: magick-feature-flags
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.5
4
+ version: 0.9.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Lobanov