prefab-cloud-ruby 0.23.4 → 0.23.6

Sign up to get free protection for your applications and to get access to all the features.
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