magick-feature-flags 0.8.5 → 0.8.7
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/feature.rb +33 -11
- 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: 2ab8236f8c928279337c89be2c15f6ff413c6f33f3bbd2d2489eb9344d93b546
|
|
4
|
+
data.tar.gz: 14bc44e42dc9429441b504c81fe0b076f947c0638d2e55a590a0743bf75822e8
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e346d563053b3adb3acc9fed5bcd8b085b064be393a6cc1303435ff592a69f7987261baf9383f82ca5a46667f89de0c0dcecc5d01708fc972616ecd042dc54cc
|
|
7
|
+
data.tar.gz: 8ad9c0b56690511dc1709721248875a474e0ab521dd8d98ce63e80aedbec8e4993eb88be099b01cac82ad41096aba4eae2b40a06bd6840fd15d805f102282585
|
data/lib/magick/feature.rb
CHANGED
|
@@ -325,7 +325,11 @@ module Magick
|
|
|
325
325
|
@stored_value = value
|
|
326
326
|
|
|
327
327
|
# Update registered feature instance if it exists
|
|
328
|
-
|
|
328
|
+
if Magick.features.key?(name)
|
|
329
|
+
registered = Magick.features[name]
|
|
330
|
+
registered.instance_variable_set(:@stored_value, value)
|
|
331
|
+
registered.instance_variable_set(:@targeting, @targeting.dup) if @targeting
|
|
332
|
+
end
|
|
329
333
|
|
|
330
334
|
changes = { value: { from: old_value, to: value } }
|
|
331
335
|
|
|
@@ -386,6 +390,12 @@ module Magick
|
|
|
386
390
|
raise InvalidFeatureValueError, "Cannot disable feature of type #{type}"
|
|
387
391
|
end
|
|
388
392
|
|
|
393
|
+
# Ensure registered feature instance also has targeting cleared
|
|
394
|
+
if Magick.features.key?(name)
|
|
395
|
+
registered = Magick.features[name]
|
|
396
|
+
registered.instance_variable_set(:@targeting, {})
|
|
397
|
+
end
|
|
398
|
+
|
|
389
399
|
# Cascade disable: disable all features that depend on this one
|
|
390
400
|
disable_dependent_features(user_id: user_id)
|
|
391
401
|
|
|
@@ -485,9 +495,9 @@ module Magick
|
|
|
485
495
|
if @description && !adapter_registry.get(name, 'description')
|
|
486
496
|
adapter_registry.set(name, 'description', @description)
|
|
487
497
|
end
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
498
|
+
return unless @display_name && !adapter_registry.get(name, 'display_name')
|
|
499
|
+
|
|
500
|
+
adapter_registry.set(name, 'display_name', @display_name)
|
|
491
501
|
end
|
|
492
502
|
|
|
493
503
|
def load_value_from_adapter
|
|
@@ -689,14 +699,28 @@ module Magick
|
|
|
689
699
|
# Find all features that depend on this feature
|
|
690
700
|
dependent_features = find_dependent_features
|
|
691
701
|
|
|
692
|
-
# Disable each dependent feature
|
|
702
|
+
# Disable each dependent feature by setting value directly (avoid recursion)
|
|
693
703
|
dependent_features.each do |dep_feature_name|
|
|
694
704
|
dep_feature = Magick.features[dep_feature_name.to_s] || Magick[dep_feature_name]
|
|
695
705
|
next unless dep_feature
|
|
696
706
|
|
|
697
|
-
#
|
|
698
|
-
|
|
699
|
-
|
|
707
|
+
# Set value directly to avoid recursive disable calls
|
|
708
|
+
# Clear targeting and set value to false/empty/0 based on type
|
|
709
|
+
dep_feature.instance_variable_set(:@targeting, {})
|
|
710
|
+
dep_feature.save_targeting
|
|
711
|
+
|
|
712
|
+
case dep_feature.type
|
|
713
|
+
when :boolean
|
|
714
|
+
dep_feature.set_value(false, user_id: user_id)
|
|
715
|
+
when :string
|
|
716
|
+
dep_feature.set_value('', user_id: user_id)
|
|
717
|
+
when :number
|
|
718
|
+
dep_feature.set_value(0, user_id: user_id)
|
|
719
|
+
end
|
|
720
|
+
|
|
721
|
+
# Rails 8+ event
|
|
722
|
+
if defined?(Magick::Rails::Events) && Magick::Rails::Events.rails8?
|
|
723
|
+
Magick::Rails::Events.feature_disabled_globally(dep_feature_name, user_id: user_id)
|
|
700
724
|
end
|
|
701
725
|
end
|
|
702
726
|
end
|
|
@@ -706,9 +730,7 @@ module Magick
|
|
|
706
730
|
dependent_features = []
|
|
707
731
|
Magick.features.each do |_name, feature|
|
|
708
732
|
feature_deps = feature.instance_variable_get(:@dependencies) || []
|
|
709
|
-
if feature_deps.include?(name.to_s) || feature_deps.include?(name.to_sym)
|
|
710
|
-
dependent_features << feature.name
|
|
711
|
-
end
|
|
733
|
+
dependent_features << feature.name if feature_deps.include?(name.to_s) || feature_deps.include?(name.to_sym)
|
|
712
734
|
end
|
|
713
735
|
dependent_features
|
|
714
736
|
end
|
data/lib/magick/version.rb
CHANGED