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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 92b5a4b913e87e53dc5c98b88d86ebaa7ea2d2bdf8434da373846f1c11a77d1f
4
- data.tar.gz: 39cd2f51130d3bbd1ecc15760d5352c93b5fb2e06622ed1426f366443d157e8f
3
+ metadata.gz: 876436714b054435d68ac40f18eab6597165640e5f4ab2cb666474f7b03cb92f
4
+ data.tar.gz: 1cb04e84837d1faf72fa9566fe852ce484d20035b763b9cec4896ec1cb24b62e
5
5
  SHA512:
6
- metadata.gz: 2786314abef311c89157aa037b7275dbea5ab5748d27795191b211dab1200fa6ee26473ade2fba66fc4569f831e49e5fcbae46d162a364434b5fe711e90beb50
7
- data.tar.gz: a4bc99cd3aac2c007d845ffe92092ef0c64c30cc3d690283834fe44bd294d32bb155813bffe1dfa6deea9bc62019aac26fbbce16fa6974c676f5668315fced54
6
+ metadata.gz: b541dbee500ab1e93969791326ca2f02ab7b4bd9595f5a903ec954018166cf5de9f26cde857325e2698fdcfe311533e31f3eb201027594e4a66007246a14248a
7
+ data.tar.gz: 701320125c33d03df6238e010ee9ce274f59fc56d4b423ebb6ffec131b2edda19fb1214dc532b875259f63848e4cbfa61ddbbf9b1354b6384fa139cd17c06840
@@ -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
- # Fall back to stored value or default
130
- stored_value || default_value
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
- Magick.features[name].instance_variable_set(:@stored_value, value) if Magick.features.key?(name)
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
- if @display_name && !adapter_registry.get(name, 'display_name')
489
- adapter_registry.set(name, 'display_name', @display_name)
490
- end
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Magick
4
- VERSION = '0.8.6'
4
+ VERSION = '0.8.8'
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.8.6
4
+ version: 0.8.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Lobanov