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 +4 -4
- data/VERSION +1 -1
- data/lib/prefab/config_client.rb +6 -1
- data/lib/prefab/criteria_evaluator.rb +3 -1
- data/prefab-cloud-ruby.gemspec +3 -3
- data/test/test_criteria_evaluator.rb +37 -0
- data/test/test_logger.rb +15 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7132292d4137fdc797fa0bd721fc2a4389ed5fda5452be8e6403fe11ca1be9a4
|
4
|
+
data.tar.gz: b23a18e42a3d033f4d5f8ab565df09b30bdcfffa97c0ec9a528811fd2f1bbb22
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4ba972c390518d261dd8d5c29411bb786445b37023f6e333c9d5e57923819ba3d00dcd085de747df48d763704fdb795ed955f53f15436f33596059091aeee2b3
|
7
|
+
data.tar.gz: d5c38d28c9b87229255127556be2e8b815cc442b159d074bee09d997c438cdece7ab6df9e037cd1eb2e7057aaef08355ec7729b926a93b6eea44e83808c1d2d0
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.23.
|
1
|
+
0.23.6
|
data/lib/prefab/config_client.rb
CHANGED
@@ -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
|
-
|
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
|
-
|
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
|
data/prefab-cloud-ruby.gemspec
CHANGED
@@ -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.
|
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.
|
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-
|
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
|
+
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-
|
11
|
+
date: 2023-04-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: concurrent-ruby
|