bbk-utils 1.0.1.147183 → 1.1.0.181866

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: e9e803d8681188bee3d02f0136ca8e23e879895bde7d7f36f954430c17ae375f
4
- data.tar.gz: 917d6a58f8b48a3162c46504c9ea5a499b9c4444d8ed3e016e107f7d9e1a73a6
3
+ metadata.gz: d1a8c300322287bbbf395a5006d97201575d85569bee0977c0dff202ff57df2a
4
+ data.tar.gz: 546cdd733680ba4d991cf1ec2fd86029bc911983416e0b34d130a9a9ea2ac5e1
5
5
  SHA512:
6
- metadata.gz: 6ab6b068166a4bd68677644cac4f00a810f54e921353bdad6e7772aac947d55c9618c447c6277ff899b249122fb1de98bd2153147ada6a8ed3318e774cf33e8c
7
- data.tar.gz: 12b7f0f487d56d9edd31183f7d428ed9a7bf5639c5e6496cabccb306e8d3cc764eca18c373513b4982323b2f9bf2ee0b51d379afc7b661cd16ab411a4ff53874
6
+ metadata.gz: 93e8581c5c069019f59c42d6ba23319a3831e3a51e99ee64510a351663d9943546f786bab3b4728ea616a955d5ad2745c15a1102a40f0021cae82d2c3978eb4f
7
+ data.tar.gz: b1274cb1d916382beb6e016787e97606b454a72eff52207020a886f2b329129f3c4d76a7998b702b0f70e4014ef9a0d42b2433da7631b592f7d8d64997baa287
data/Gemfile.lock CHANGED
@@ -1,14 +1,14 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bbk-utils (1.0.1.147183)
5
- activesupport (>= 6.0)
4
+ bbk-utils (1.1.0.181866)
5
+ activesupport (>= 7.0)
6
6
  russian
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- activesupport (7.0.5)
11
+ activesupport (7.0.7.2)
12
12
  concurrent-ruby (~> 1.0, >= 1.0.2)
13
13
  i18n (>= 1.6, < 2)
14
14
  minitest (>= 5.1)
@@ -24,7 +24,7 @@ GEM
24
24
  byebug (11.1.3)
25
25
  coercible (1.0.0)
26
26
  descendants_tracker (~> 0.0.1)
27
- concurrent-ruby (1.1.9)
27
+ concurrent-ruby (1.2.2)
28
28
  descendants_tracker (0.0.4)
29
29
  thread_safe (~> 0.3, >= 0.3.1)
30
30
  diff-lcs (1.4.4)
@@ -42,13 +42,13 @@ GEM
42
42
  path_expander (~> 1.0)
43
43
  ruby_parser (~> 3.1, > 3.1.0)
44
44
  sexp_processor (~> 4.8)
45
- i18n (1.8.11)
45
+ i18n (1.14.1)
46
46
  concurrent-ruby (~> 1.0)
47
47
  ice_nine (0.11.2)
48
48
  kwalify (0.7.2)
49
49
  launchy (2.5.0)
50
50
  addressable (~> 2.7)
51
- minitest (5.18.0)
51
+ minitest (5.19.0)
52
52
  parallel (1.21.0)
53
53
  parser (3.0.3.1)
54
54
  ast (~> 2.4.1)
@@ -0,0 +1,76 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'logger'
4
+
5
+ module BBK
6
+ module Utils
7
+ class CombinedLogger
8
+
9
+ include ::Logger::Severity
10
+
11
+ attr_reader :loggers, :progname, :level, :formatter
12
+
13
+ def self.new(*args, **kwargs)
14
+ ActiveSupport::TaggedLogging.new(super)
15
+ end
16
+
17
+ def initialize(progname, *loggers, formatter: LogFormatter.new, level: Logger::Severity::INFO)
18
+ @loggers = loggers
19
+ self.progname = progname
20
+ self.level = level
21
+ self.formatter = formatter
22
+ end
23
+
24
+ def progname=(name)
25
+ @progname = name
26
+ @loggers.each {|logger| logger.progname = name}
27
+ end
28
+
29
+ def formatter=(formatter)
30
+ @formatter = formatter
31
+ @loggers.each {|logger| logger.formatter = formatter}
32
+ end
33
+
34
+ def level=(level)
35
+ log_level = if level.is_a?(Integer) || (Integer(level) rescue false)
36
+ level
37
+ else
38
+ self.class.const_get(level.to_s.upcase)
39
+ end
40
+ @level = log_level
41
+ @loggers.each {|logger| logger.level = log_level }
42
+ end
43
+
44
+ alias sev_threshold level
45
+ alias sev_threshold= level=
46
+
47
+ %i[debug info warn error fatal].each do |level|
48
+ define_method(level) do |*args, &block|
49
+ loggers.each {|logger| logger.send(level, *args, &block)}
50
+ nil
51
+ end
52
+
53
+ define_method("#{level}?") do
54
+ self.level <= self.class.const_get(level.upcase.to_sym)
55
+ end
56
+
57
+ define_method("#{level}!") do
58
+ self.level = self.class.const_get(level.upcase.to_sym)
59
+ end
60
+
61
+ end
62
+
63
+ def method_missing(name, *args, **kwargs, &block)
64
+ @loggers.each {|logger| logger.send(name, *args, **kwargs, &block)}
65
+ nil
66
+ end
67
+
68
+ def clone
69
+ super.tap do |it|
70
+ it.instance_variable_set(:@loggers, loggers.map(&:clone))
71
+ end
72
+ end
73
+
74
+ end
75
+ end
76
+ end
@@ -6,9 +6,11 @@ module BBK
6
6
  module Utils
7
7
  module EnvHelper
8
8
 
9
- def self.prepare_database_envs(env)
10
- uri = build_uri_with_defaults(env)
11
- apply_env_from_uri(env, uri)
9
+ DEFAULT_DATABASE_PREFIX = 'DATABASE'
10
+
11
+ def self.prepare_database_envs(env, prefix: DEFAULT_DATABASE_PREFIX)
12
+ uri = build_uri_with_defaults(env, prefix: prefix)
13
+ apply_env_from_uri(env, uri, prefix: prefix)
12
14
  env
13
15
  end
14
16
 
@@ -30,38 +32,38 @@ module BBK
30
32
  env
31
33
  end
32
34
 
33
- def self.build_uri_with_defaults(env)
34
- ::URI.parse(env['DATABASE_URL'] || '').tap do |uri|
35
- uri.scheme = env.fetch('DATABASE_ADAPTER', uri.scheme) || 'postgresql'
36
- uri.user = env.fetch('DATABASE_USER', uri.user) || 'postgres'
37
- uri.password = env.fetch('DATABASE_PASS', uri.password)
38
- uri.hostname = env.fetch('DATABASE_HOST', uri.hostname) || 'db'
39
- uri.port = env.fetch('DATABASE_PORT', uri.port) || 5432
35
+ def self.build_uri_with_defaults(env, prefix: DEFAULT_DATABASE_PREFIX)
36
+ ::URI.parse(env[prefixed_key(prefix, 'URL')] || '').tap do |uri|
37
+ uri.scheme = env.fetch(prefixed_key(prefix, 'ADAPTER'), uri.scheme) || 'postgresql'
38
+ uri.user = env.fetch(prefixed_key(prefix, 'USER'), uri.user) || 'postgres'
39
+ uri.password = env.fetch(prefixed_key(prefix, 'PASS'), uri.password)
40
+ uri.hostname = env.fetch(prefixed_key(prefix, 'HOST'), uri.hostname) || 'db'
41
+ uri.port = env.fetch(prefixed_key(prefix, 'PORT'), uri.port) || 5432
40
42
 
41
- name = env.fetch('DATABASE_NAME', uri.path) || ''
43
+ name = env.fetch(prefixed_key(prefix, 'NAME'), uri.path) || ''
42
44
  name = "/#{name}" unless name.start_with?('/')
43
45
  uri.path = name
44
46
 
45
47
  if uri.query
46
48
  params = URI.decode_www_form(uri.query).to_h
47
- params['pool'] = env.fetch('DATABASE_POOL', params['pool'])
49
+ params['pool'] = env.fetch(prefixed_key(prefix, 'POOL'), params['pool'])
48
50
  uri.query = URI.encode_www_form(params)
49
51
  end
50
52
  end
51
53
  end
52
54
 
53
- def self.apply_env_from_uri(env, uri)
54
- env['DATABASE_URL'] = uri.to_s
55
- env['DATABASE_ADAPTER'] = uri.scheme
56
- env['DATABASE_USER'] = uri.user
57
- env['DATABASE_PASS'] = uri.password
58
- env['DATABASE_HOST'] = uri.hostname
59
- env['DATABASE_PORT'] = uri.port.to_s
60
- env['DATABASE_NAME'] = uri.path[1..-1]
55
+ def self.apply_env_from_uri(env, uri, prefix: DEFAULT_DATABASE_PREFIX)
56
+ env[prefixed_key(prefix, 'URL')] = uri.to_s
57
+ env[prefixed_key(prefix, 'ADAPTER')] = uri.scheme
58
+ env[prefixed_key(prefix, 'USER')] = uri.user
59
+ env[prefixed_key(prefix, 'PASS')] = uri.password
60
+ env[prefixed_key(prefix, 'HOST')] = uri.hostname
61
+ env[prefixed_key(prefix, 'PORT')] = uri.port.to_s
62
+ env[prefixed_key(prefix, 'NAME')] = uri.path[1..-1]
61
63
 
62
64
  if uri.query
63
65
  params = URI.decode_www_form(uri.query).to_h
64
- env['DATABASE_POOL'] = params['pool']
66
+ env[prefixed_key(prefix, 'POOL')] = params['pool']
65
67
  end
66
68
  end
67
69
 
@@ -105,6 +107,11 @@ module BBK
105
107
  env['MQ_VHOST'] = vhost
106
108
  end
107
109
 
110
+
111
+ def self.prefixed_key(prefix, name)
112
+ [prefix, name].select(&:present?).join('_')
113
+ end
114
+
108
115
  end
109
116
  end
110
117
  end
@@ -3,7 +3,7 @@
3
3
  module BBK
4
4
  module Utils
5
5
 
6
- VERSION = '1.0.1'
6
+ VERSION = '1.1.0'.freeze
7
7
 
8
8
  end
9
9
  end
data/lib/bbk/utils.rb CHANGED
@@ -5,6 +5,7 @@ require 'active_support/core_ext'
5
5
  require 'bbk/utils/config'
6
6
  require 'bbk/utils/crypt'
7
7
  require 'bbk/utils/logger'
8
+ require 'bbk/utils/combined_logger'
8
9
  require 'bbk/utils/proxy_logger'
9
10
  require 'bbk/utils/version'
10
11
  require 'bbk/utils/xml'
@@ -2,11 +2,11 @@ module BBK
2
2
  module Utils
3
3
  module EnvHelper
4
4
 
5
- def self.prepare_database_envs: (Hash[String, untyped]|::_ENV env ) -> (Hash[String,untyped]|::_ENV)
5
+ def self.prepare_database_envs: (Hash[String, untyped]|::_ENV env, ?prefix: String) -> (Hash[String,untyped]|::_ENV)
6
6
  def self.prepare_mq_envs: (Hash[String, untyped]|::_ENV env) -> (Hash[String, untyped]|::_ENV)
7
7
  def self.prepare_jaeger_envs: (Hash[String, untyped]|::_ENV env) -> (Hash[String, untyped]|::_ENV)
8
- def self.build_uri_with_defaults: (Hash[String, untyped]|::_ENV env) -> URI::Generic
9
- def self.apply_env_from_uri: (Hash[String, untyped]|::_ENV env, URI::Generic uri) -> void
8
+ def self.build_uri_with_defaults: (Hash[String, untyped]|::_ENV env, ?prefix: String) -> URI::Generic
9
+ def self.apply_env_from_uri: (Hash[String, untyped]|::_ENV env, URI::Generic uri, ?prefix: String) -> void
10
10
  def self.build_mq_uri_with_defaults: (Hash[String, untyped]|::_ENV env) -> Array[URI::Generic]
11
11
  def self.apply_mq_env_from_uri: (Hash[String, untyped]|::_ENV env, Array[URI::Generic] uris) -> void
12
12
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bbk-utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1.147183
4
+ version: 1.1.0.181866
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samoilenko Yuri
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-05-31 00:00:00.000000000 Z
11
+ date: 2023-08-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '6.0'
19
+ version: '7.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '6.0'
26
+ version: '7.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: russian
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -219,6 +219,7 @@ files:
219
219
  - bin/console
220
220
  - bin/setup
221
221
  - lib/bbk/utils.rb
222
+ - lib/bbk/utils/combined_logger.rb
222
223
  - lib/bbk/utils/config.rb
223
224
  - lib/bbk/utils/crypt.rb
224
225
  - lib/bbk/utils/env_helper.rb
@@ -256,7 +257,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
256
257
  - !ruby/object:Gem::Version
257
258
  version: '0'
258
259
  requirements: []
259
- rubygems_version: 3.2.32
260
+ rubygems_version: 3.2.33
260
261
  signing_key:
261
262
  specification_version: 4
262
263
  summary: Support classes for BBK stack