prefab-cloud-ruby 0.17.0 → 0.18.0

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: 96a092713ab6a3e93c9597c9457144769d954679877d35cfa21550880fb30251
4
- data.tar.gz: 43aaa1cadb70983991ea7f2908d5986c47579e9057574a8cd623f4a12d2e4e3e
3
+ metadata.gz: d9225ebaadf8be997d152b66cb58ff342d126bc5cfbe489511af4791d89dd5f7
4
+ data.tar.gz: cbaf511c7aeaf0ef743b33c2ad00c40bd4d6c8ddba0a17ddff541afeb8e055d9
5
5
  SHA512:
6
- metadata.gz: 8392d08f8bdd0b6bfd89e1b1ad32fb3e1161e60f8b2ad54984d0cc1795b91476061c7b38a770263a48d217072d8562e6d4dd1b348c975f22cab092e25d017806
7
- data.tar.gz: c6fc0b30a9f52d850b1e6422932691b47004a29738cf8adeafada21d734392630df00d081b4dc230a8a0ba2148ebf4d12610a4d17d3791eb02104097fce86b96
6
+ metadata.gz: f00e343e6f3f7a7f11351409708979c4e02420eae8bf8d9520cdc58de464b682158b863bcab88b4583c469709c621f066bd8995e482963386b931c877bfd2b1f
7
+ data.tar.gz: 5e51d64d2d5adc738e5f8438cd222ae3e4d9fc1f183a789d25486da7197b25c3263fff9a0fac9b33a9acffc169e035630e7a8cb8b3d3770e9e8b669d34b96f68
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.17.0
1
+ 0.18.0
@@ -4,7 +4,7 @@ module Prefab
4
4
 
5
5
  SEP = "."
6
6
  BASE_KEY = "log-level"
7
- UNKNOWN = "unknown"
7
+ UNKNOWN_PATH = "unknown."
8
8
 
9
9
  LOG_LEVEL_LOOKUPS = {
10
10
  Prefab::LogLevel::NOT_SET_LOG_LEVEL => Logger::DEBUG,
@@ -36,7 +36,7 @@ module Prefab
36
36
  def log_internal(message, path, progname, severity, &block)
37
37
  level = level_of(path)
38
38
  progname = "#{path}: #{progname}"
39
- severity ||= UNKNOWN
39
+ severity ||= Logger::UNKNOWN
40
40
  if @logdev.nil? || severity < level || @silences[local_log_id]
41
41
  return true
42
42
  end
@@ -119,7 +119,7 @@ module Prefab
119
119
 
120
120
  # Find the closest match to 'log_level.path' in config
121
121
  def level_of(path)
122
- closest_log_level_match = @config_client.get(BASE_KEY, Prefab::LogLevel::WARN)
122
+ closest_log_level_match = @config_client.get(BASE_KEY, :WARN)
123
123
  path.split(SEP).inject([BASE_KEY]) do |memo, n|
124
124
  memo << n
125
125
  val = @config_client.get(memo.join(SEP), nil)
@@ -128,7 +128,8 @@ module Prefab
128
128
  end
129
129
  memo
130
130
  end
131
- LOG_LEVEL_LOOKUPS[closest_log_level_match]
131
+ closest_log_level_match_int = Prefab::LogLevel.resolve(closest_log_level_match)
132
+ LOG_LEVEL_LOOKUPS[closest_log_level_match_int]
132
133
  end
133
134
 
134
135
  def get_loc_path(loc)
@@ -139,7 +140,7 @@ module Prefab
139
140
  # sanitize & clean the path of the caller so the key
140
141
  # looks like log_level.app.models.user
141
142
  def get_path(absolute_path, base_label)
142
- path = (absolute_path || UNKNOWN).dup
143
+ path = (absolute_path || UNKNOWN_PATH).dup
143
144
  path.slice! Dir.pwd
144
145
  path.gsub!(/(.*)?(?=\/lib)/im, "") # replace everything before first lib
145
146
 
@@ -154,7 +155,7 @@ module Prefab
154
155
  # since it may log
155
156
  class BootstrappingConfigClient
156
157
  def get(key, default = nil)
157
- ENV["PREFAB_LOG_CLIENT_BOOTSTRAP_LOG_LEVEL"] ? Prefab::LogLevel.resolve(ENV["PREFAB_LOG_CLIENT_BOOTSTRAP_LOG_LEVEL"].upcase.to_sym) : default
158
+ ENV["PREFAB_LOG_CLIENT_BOOTSTRAP_LOG_LEVEL"] ? ENV["PREFAB_LOG_CLIENT_BOOTSTRAP_LOG_LEVEL"].upcase.to_sym : default
158
159
  end
159
160
  end
160
161
  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.17.0 ruby lib
5
+ # stub: prefab-cloud-ruby 0.18.0 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "prefab-cloud-ruby".freeze
9
- s.version = "0.17.0"
9
+ s.version = "0.18.0"
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 = "2022-10-11"
14
+ s.date = "2022-10-14"
15
15
  s.description = "RateLimits & Config as a service".freeze
16
16
  s.email = "jdwyer@prefab.cloud".freeze
17
17
  s.extra_rdoc_files = [
data/test/test_logger.rb CHANGED
@@ -20,6 +20,9 @@ class TestCLogger < Minitest::Test
20
20
  assert_equal "active_support.log_subscriber.info",
21
21
  @logger.get_path("/Users/jeffdwyer/.asdf/installs/ruby/3.1.2/lib/ruby/gems/3.1.0/gems/activesupport-7.0.2.4/lib/active_support/log_subscriber.rb:130:in `info'",
22
22
  "info")
23
+ assert_equal "unknown.info",
24
+ @logger.get_path(nil,
25
+ "info")
23
26
  end
24
27
 
25
28
  def test_loc_resolution
@@ -44,24 +47,61 @@ class TestCLogger < Minitest::Test
44
47
  with_env("PREFAB_LOG_CLIENT_BOOTSTRAP_LOG_LEVEL", "info") do
45
48
  # env var overrides the default level
46
49
  assert_equal Logger::INFO,
47
- @logger.level_of("app.models.user"), "PREFAB_LOG_CLIENT_BOOTSTRAP_LOG_LEVEL is info"
50
+ @logger.level_of("app.models.user"), "PREFAB_LOG_CLIENT_BOOTSTRAP_LOG_LEVEL is info"
48
51
 
49
52
  @logger.set_config_client(MockConfigClient.new({}))
50
53
  assert_equal Logger::WARN,
51
- @logger.level_of("app.models.user"), "default is warn"
54
+ @logger.level_of("app.models.user"), "default is warn"
52
55
 
53
- @logger.set_config_client(MockConfigClient.new("log-level.app" => Prefab::LogLevel::INFO))
56
+ @logger.set_config_client(MockConfigClient.new("log-level.app" => :INFO))
54
57
  assert_equal Logger::INFO,
55
- @logger.level_of("app.models.user")
58
+ @logger.level_of("app.models.user")
56
59
 
57
- @logger.set_config_client(MockConfigClient.new("log-level.app" => Prefab::LogLevel::DEBUG))
60
+ @logger.set_config_client(MockConfigClient.new("log-level.app" => :DEBUG))
58
61
  assert_equal Logger::DEBUG,
59
- @logger.level_of("app.models.user")
62
+ @logger.level_of("app.models.user")
60
63
 
61
- @logger.set_config_client(MockConfigClient.new("log-level.app" => Prefab::LogLevel::DEBUG,
62
- "log-level.app.models" => Prefab::LogLevel::ERROR))
64
+ @logger.set_config_client(MockConfigClient.new("log-level.app" => :DEBUG,
65
+ "log-level.app.models" => :ERROR))
63
66
  assert_equal Logger::ERROR,
64
- @logger.level_of("app.models.user"), "test leveling"
67
+ @logger.level_of("app.models.user"), "test leveling"
68
+ end
69
+ end
70
+
71
+ def test_log_internal
72
+ logger, mock_logdev = mock_logger_expecting /W, \[.*\] WARN -- test.path: : test message/
73
+ logger.log_internal("test message", "test.path", "", Logger::WARN)
74
+ mock_logdev.verify
75
+ end
76
+
77
+ def test_log_internal_unknown
78
+ logger, mock_logdev = mock_logger_expecting /A, \[.*\] ANY -- test.path: : test message/
79
+ logger.log_internal("test message", "test.path", "", Logger::UNKNOWN)
80
+ mock_logdev.verify
81
+ end
82
+
83
+ def test_log_internal_silencing
84
+ logger, mock_logdev = mock_logger_expecting /W, \[.*\] WARN -- test.path: : should log/, calls: 2
85
+ logger.silence do
86
+ logger.log_internal("should not log", "test.path", "", Logger::WARN)
87
+ end
88
+ logger.log_internal("should log", "test.path", "", Logger::WARN)
89
+ mock_logdev.verify
90
+ end
91
+
92
+ def mock_logger_expecting pattern, configs = {}, calls: 1
93
+ mock_logdev = Minitest::Mock.new
94
+ mock_logdev.expect :write, nil do |arg|
95
+ pattern.match(arg)
65
96
  end
97
+
98
+ calls.times.each do
99
+ mock_logdev.expect(:nil?, false)
100
+ end
101
+
102
+ logger = Prefab::LoggerClient.new($stdout)
103
+ logger.instance_variable_set('@logdev', mock_logdev)
104
+ logger.set_config_client(MockConfigClient.new(configs))
105
+ [logger, mock_logdev]
66
106
  end
67
107
  end
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.17.0
4
+ version: 0.18.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Dwyer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-10-11 00:00:00.000000000 Z
11
+ date: 2022-10-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby