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 +4 -4
- data/lib/magick/adapters/registry.rb +6 -0
- data/lib/magick/feature.rb +11 -1
- data/lib/magick/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c89e62bee50614e51b3e844968d557e90217cd48e77bb68ec50c47d48881389b
|
|
4
|
+
data.tar.gz: d39574add8463bb4a927ea94db047d3418317d966b77f400892f67ed6bf4a31c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
data/lib/magick/feature.rb
CHANGED
|
@@ -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
|
-
#
|
|
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
|
data/lib/magick/version.rb
CHANGED