magick-feature-flags 0.8.2 → 0.8.5

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: a53f3c93e974822f126ed2148d9fb61adf7de3a374ba26acbd834a2a916545a0
4
- data.tar.gz: 31dbbacc15565a496e65113364d3eaf5a6a5385251f3654a28ea1c5eb9e9b014
3
+ metadata.gz: a62d079b6f68d6c2b207fe51bf1698fd7b79eca4e9eecd509b614f4a33ee78f2
4
+ data.tar.gz: 7b01eafa0b42fa5555cfa7356bc299a3bb5170a8065714707e68c0d13a8e16a6
5
5
  SHA512:
6
- metadata.gz: 9b39439b771eb158d39496758362675db1134ea160311b8af9d51b59e1b40c7440ee425ee7d8f6e28bd02dc3da6498ec24d79744cd5cb7b63f54e13e86fa8cf4
7
- data.tar.gz: 0bc2519decc3164d6b3dddd6080bf79c00b9a1ee2473d95b25550edbea8ca8c433912b8655d72c86b993762526781377df27219f1957585990b59942e3597bb8
6
+ metadata.gz: e93c25f079be5541256bd3c89389a8370edb0c8cd2789e85c2010d9e6f6e8e20b9bb0ca74e87a7c22c4bfb471a53d88cde64ea1570cc06f2439746ee07a0e621
7
+ data.tar.gz: 9297dcd89a4bcfb487f1fe550960f1d1984a7a5ac631c80cb0f417a9792dbeffa7b1832b2d02fd0f07408ff9ba8e539f0c1127a6677415f9e81c62957ffd34cd
@@ -24,6 +24,8 @@ module Magick
24
24
  validate_type!
25
25
  validate_default_value!
26
26
  load_from_adapter
27
+ # Save description and display_name to adapter if they were provided and not already in adapter
28
+ save_metadata_if_new
27
29
  end
28
30
 
29
31
  def enabled?(context = {})
@@ -412,6 +414,21 @@ module Magick
412
414
  true
413
415
  end
414
416
 
417
+ # Reload feature state from adapter (useful when feature is changed externally)
418
+ def reload
419
+ load_from_adapter
420
+ # Update registered feature instance if it exists
421
+ if Magick.features.key?(name)
422
+ registered = Magick.features[name]
423
+ registered.instance_variable_set(:@stored_value, @stored_value)
424
+ registered.instance_variable_set(:@status, @status)
425
+ registered.instance_variable_set(:@description, @description)
426
+ registered.instance_variable_set(:@display_name, @display_name)
427
+ registered.instance_variable_set(:@targeting, @targeting.dup)
428
+ end
429
+ true
430
+ end
431
+
415
432
  def to_h
416
433
  {
417
434
  name: name,
@@ -435,28 +452,21 @@ module Magick
435
452
  load_value_from_adapter
436
453
  end
437
454
 
438
- # Reload feature state from adapter (useful when feature is changed externally)
439
- def reload
440
- load_from_adapter
441
- # Update registered feature instance if it exists
442
- if Magick.features.key?(name)
443
- registered = Magick.features[name]
444
- registered.instance_variable_set(:@stored_value, @stored_value)
445
- registered.instance_variable_set(:@status, @status)
446
- registered.instance_variable_set(:@display_name, @display_name)
447
- registered.instance_variable_set(:@targeting, @targeting.dup)
448
- end
449
- self
450
- end
451
-
452
455
  def load_from_adapter
453
456
  # Clear cached value to force reload from adapter (which checks version)
454
457
  @stored_value = nil
455
458
  @stored_value = load_value_from_adapter
456
459
  status_value = adapter_registry.get(name, 'status')
457
460
  @status = status_value ? status_value.to_sym : status
461
+
462
+ # Load description from adapter (override initial value if present in adapter)
463
+ description_value = adapter_registry.get(name, 'description')
464
+ @description = description_value if description_value
465
+
466
+ # Load display_name from adapter (override initial value if present in adapter)
458
467
  display_name_value = adapter_registry.get(name, 'display_name')
459
468
  @display_name = display_name_value if display_name_value
469
+
460
470
  targeting_value = adapter_registry.get(name, 'targeting')
461
471
  if targeting_value.is_a?(Hash)
462
472
  # Normalize keys to symbols and handle nested structures
@@ -469,6 +479,17 @@ module Magick
469
479
  end
470
480
  end
471
481
 
482
+ def save_metadata_if_new
483
+ # Save description and display_name to adapter if they were provided in options
484
+ # but don't exist in adapter yet (to avoid overwriting existing values)
485
+ if @description && !adapter_registry.get(name, 'description')
486
+ adapter_registry.set(name, 'description', @description)
487
+ end
488
+ if @display_name && !adapter_registry.get(name, 'display_name')
489
+ adapter_registry.set(name, 'display_name', @display_name)
490
+ end
491
+ end
492
+
472
493
  def load_value_from_adapter
473
494
  value = adapter_registry.get(name, 'value')
474
495
  return nil if value.nil?
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Magick
4
- VERSION = '0.8.2'
4
+ VERSION = '0.8.5'
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.2
4
+ version: 0.8.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Lobanov