prefab-cloud-ruby 0.17.0 → 0.18.0

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: 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