prefab-cloud-ruby 0.23.4 → 0.23.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 74e19eed1d40cad8e3ea9b99a8755c90864a97b4a00e08d2df6a9fe5226f5ad0
4
- data.tar.gz: 4ad94565a39139d01795007077128d8f997c05e6a8b785e019ca8b66308df5c5
3
+ metadata.gz: 7132292d4137fdc797fa0bd721fc2a4389ed5fda5452be8e6403fe11ca1be9a4
4
+ data.tar.gz: b23a18e42a3d033f4d5f8ab565df09b30bdcfffa97c0ec9a528811fd2f1bbb22
5
5
  SHA512:
6
- metadata.gz: 7a10679fe049175ebaf01f12194f91bea1a98ce226bf0e0f3e87aea3ab299c888fb7cebfe67b942e77dc46367c9b05cc5acaf995870e1d6ee1f2b8aa744f2fa3
7
- data.tar.gz: c6e506da285ae5f7913f81891e7f32a1b5365f1071bc90323f317aa2523fddb0bd41c2d8a53decf2afec000e234d535713e198f3ac8b4c98259c7904f03ce7ad
6
+ metadata.gz: 4ba972c390518d261dd8d5c29411bb786445b37023f6e333c9d5e57923819ba3d00dcd085de747df48d763704fdb795ed955f53f15436f33596059091aeee2b3
7
+ data.tar.gz: d5c38d28c9b87229255127556be2e8b815cc442b159d074bee09d997c438cdece7ab6df9e037cd1eb2e7057aaef08355ec7729b926a93b6eea44e83808c1d2d0
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.23.4
1
+ 0.23.6
@@ -68,7 +68,12 @@ module Prefab
68
68
  def get(key, default = Prefab::Client::NO_DEFAULT_PROVIDED, properties = {}, lookup_key = nil)
69
69
  value = _get(key, lookup_key, properties)
70
70
 
71
- value ? Prefab::ConfigValueUnwrapper.unwrap(value, key, properties) : handle_default(key, default)
71
+ if value
72
+ lookup = lookup_key == Prefab::Client::NO_DEFAULT_PROVIDED ? nil : lookup_key
73
+ Prefab::ConfigValueUnwrapper.unwrap(value, key, properties.merge(Prefab::CriteriaEvaluator::LOOKUP_KEY => lookup))
74
+ else
75
+ handle_default(key, default)
76
+ end
72
77
  end
73
78
 
74
79
  private
@@ -87,7 +87,9 @@ module Prefab
87
87
 
88
88
  case criterion_value_or_values
89
89
  when Google::Protobuf::RepeatedField
90
- criterion_value_or_values.include?(value_from_properties)
90
+ # we to_s the value from properties for comparison because the
91
+ # criterion_value_or_values is a list of strings
92
+ criterion_value_or_values.include?(value_from_properties.to_s)
91
93
  else
92
94
  criterion_value_or_values == value_from_properties
93
95
  end
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: prefab-cloud-ruby 0.23.4 ruby lib
5
+ # stub: prefab-cloud-ruby 0.23.6 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "prefab-cloud-ruby".freeze
9
- s.version = "0.23.4"
9
+ s.version = "0.23.6"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib".freeze]
13
13
  s.authors = ["Jeff Dwyer".freeze]
14
- s.date = "2023-04-12"
14
+ s.date = "2023-04-17"
15
15
  s.description = "Feature Flags, Live Config, and Dynamic Log Levels as a service".freeze
16
16
  s.email = "jdwyer@prefab.cloud".freeze
17
17
  s.extra_rdoc_files = [
@@ -505,6 +505,43 @@ class TestCriteriaEvaluator < Minitest::Test
505
505
  assert_equal DEFAULT_VALUE, evaluator.evaluate({ email: 'example@gmail.com', admin: true, deleted: true }).string
506
506
  end
507
507
 
508
+ def test_stringifying_property_values_and_names
509
+ config = Prefab::Config.new(
510
+ key: KEY,
511
+ rows: [
512
+ DEFAULT_ROW,
513
+ Prefab::ConfigRow.new(
514
+ project_env_id: PROJECT_ENV_ID,
515
+ values: [
516
+ Prefab::ConditionalValue.new(
517
+ criteria: [
518
+ Prefab::Criterion.new(
519
+ operator: Prefab::Criterion::CriterionOperator::PROP_IS_ONE_OF,
520
+ value_to_match: string_list(%w[1 true hello]),
521
+ property_name: 'team_name'
522
+ )
523
+ ],
524
+ value: Prefab::ConfigValue.new(string: DESIRED_VALUE)
525
+ )
526
+ ]
527
+ )
528
+ ]
529
+ )
530
+
531
+ evaluator = Prefab::CriteriaEvaluator.new(config, project_env_id: PROJECT_ENV_ID, resolver: nil,
532
+ base_client: nil)
533
+
534
+ assert_equal DEFAULT_VALUE, evaluator.evaluate({}).string
535
+ assert_equal DEFAULT_VALUE, evaluator.evaluate({ team_name: 'prefab.cloud' }).string
536
+
537
+ [1, true, :hello].each do |value|
538
+ [:team_name, 'team_name'].each do |property_name|
539
+ assert_equal DESIRED_VALUE, evaluator.evaluate({ property_name => value }).string
540
+ assert_equal DESIRED_VALUE, evaluator.evaluate({ property_name => value.to_s }).string
541
+ end
542
+ end
543
+ end
544
+
508
545
  private
509
546
 
510
547
  def string_list(values)
data/test/test_logger.rb CHANGED
@@ -387,6 +387,21 @@ class TestLogger < Minitest::Test
387
387
  end
388
388
  end
389
389
 
390
+ def test_logging_with_a_block
391
+ prefab, io = captured_logger
392
+ message = 'MY MESSAGE'
393
+
394
+ prefab.log.error do
395
+ message
396
+ end
397
+
398
+ prefab.log.info do
399
+ raise 'THIS WILL NEVER BE EVALUATED'
400
+ end
401
+
402
+ assert_logged io, 'ERROR', 'test.test_logger.test_logging_with_a_block', ' ' + message
403
+ end
404
+
390
405
  private
391
406
 
392
407
  def assert_logged(logged_io, level, path, message)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prefab-cloud-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.23.4
4
+ version: 0.23.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Dwyer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-04-12 00:00:00.000000000 Z
11
+ date: 2023-04-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby