magick-feature-flags 0.8.6 → 0.8.8
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 +20 -9
- 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: 876436714b054435d68ac40f18eab6597165640e5f4ab2cb666474f7b03cb92f
|
|
4
|
+
data.tar.gz: 1cb04e84837d1faf72fa9566fe852ce484d20035b763b9cec4896ec1cb24b62e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b541dbee500ab1e93969791326ca2f02ab7b4bd9595f5a903ec954018166cf5de9f26cde857325e2698fdcfe311533e31f3eb201027594e4a66007246a14248a
|
|
7
|
+
data.tar.gz: 701320125c33d03df6238e010ee9ce274f59fc56d4b423ebb6ffec131b2edda19fb1214dc532b875259f63848e4cbfa61ddbbf9b1354b6384fa139cd17c06840
|
data/lib/magick/feature.rb
CHANGED
|
@@ -126,8 +126,11 @@ module Magick
|
|
|
126
126
|
targeting_result = check_targeting(context)
|
|
127
127
|
return targeting_result unless targeting_result.nil?
|
|
128
128
|
|
|
129
|
-
#
|
|
130
|
-
|
|
129
|
+
# Use instance variable if set, otherwise load from adapter
|
|
130
|
+
# This ensures we use the most recent value set via set_value/disable/enable
|
|
131
|
+
value = @stored_value
|
|
132
|
+
value = load_value_from_adapter if value.nil?
|
|
133
|
+
value || default_value
|
|
131
134
|
end
|
|
132
135
|
|
|
133
136
|
def enable_for_user(user_id)
|
|
@@ -325,7 +328,11 @@ module Magick
|
|
|
325
328
|
@stored_value = value
|
|
326
329
|
|
|
327
330
|
# Update registered feature instance if it exists
|
|
328
|
-
|
|
331
|
+
if Magick.features.key?(name)
|
|
332
|
+
registered = Magick.features[name]
|
|
333
|
+
registered.instance_variable_set(:@stored_value, value)
|
|
334
|
+
registered.instance_variable_set(:@targeting, @targeting.dup) if @targeting
|
|
335
|
+
end
|
|
329
336
|
|
|
330
337
|
changes = { value: { from: old_value, to: value } }
|
|
331
338
|
|
|
@@ -386,6 +393,12 @@ module Magick
|
|
|
386
393
|
raise InvalidFeatureValueError, "Cannot disable feature of type #{type}"
|
|
387
394
|
end
|
|
388
395
|
|
|
396
|
+
# Ensure registered feature instance also has targeting cleared
|
|
397
|
+
if Magick.features.key?(name)
|
|
398
|
+
registered = Magick.features[name]
|
|
399
|
+
registered.instance_variable_set(:@targeting, {})
|
|
400
|
+
end
|
|
401
|
+
|
|
389
402
|
# Cascade disable: disable all features that depend on this one
|
|
390
403
|
disable_dependent_features(user_id: user_id)
|
|
391
404
|
|
|
@@ -485,9 +498,9 @@ module Magick
|
|
|
485
498
|
if @description && !adapter_registry.get(name, 'description')
|
|
486
499
|
adapter_registry.set(name, 'description', @description)
|
|
487
500
|
end
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
501
|
+
return unless @display_name && !adapter_registry.get(name, 'display_name')
|
|
502
|
+
|
|
503
|
+
adapter_registry.set(name, 'display_name', @display_name)
|
|
491
504
|
end
|
|
492
505
|
|
|
493
506
|
def load_value_from_adapter
|
|
@@ -720,9 +733,7 @@ module Magick
|
|
|
720
733
|
dependent_features = []
|
|
721
734
|
Magick.features.each do |_name, feature|
|
|
722
735
|
feature_deps = feature.instance_variable_get(:@dependencies) || []
|
|
723
|
-
if feature_deps.include?(name.to_s) || feature_deps.include?(name.to_sym)
|
|
724
|
-
dependent_features << feature.name
|
|
725
|
-
end
|
|
736
|
+
dependent_features << feature.name if feature_deps.include?(name.to_s) || feature_deps.include?(name.to_sym)
|
|
726
737
|
end
|
|
727
738
|
dependent_features
|
|
728
739
|
end
|
data/lib/magick/version.rb
CHANGED