cfgstore 2.2.0 → 2.2.6

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of cfgstore might be problematic. Click here for more details.

Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/app-config.rb +24 -9
  3. data/lib/app-logger.rb +15 -9
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e8ccc7aedc989edea696ccd3a87bdc41ce206dfac1c2f63019a9c75ffd882262
4
- data.tar.gz: ab44ee639006b59f23ad8fccc59c1e15d0f25c0e8bb23d0b9c1251b531db61f1
3
+ metadata.gz: 520262b4afb15ddfc85b7a168c9368678be064fbd63ea3866ab7b2533a9c5cc0
4
+ data.tar.gz: 5aca99e7b53c6baea77231c126961009e9c8eceb84c428ebefe563a1370e905f
5
5
  SHA512:
6
- metadata.gz: f29ef1e3b1518395f13a5b3b07561d36dbaf8a392e1c34474197a2fdb49dbef40a0038c354cce0a9b3c666ad75a130556282de84db57ea58fdaaa2d11a4d7191
7
- data.tar.gz: 8685f344832b2600be19a72fba6eb873c120dc962955b569e5d08a366bf3fe2a3c8a35c592aeee400945056a194121ef85e7ed3f38ff98f674e4daf54e9d054d
6
+ metadata.gz: 676db863efb52388adf84b1ac0c6d817a9f76d182c2dd150377a1c950ca5f8114bfe3618f26f3acc67c8d736333a7bcaf33991bc1d5aa0acf7046f2dd6f7246d
7
+ data.tar.gz: 9bccccd915fb2208a478a92e0293012a9ce9183cd00843c2e3ff7c9b4a386f8ef748e8cd8b8de4aa2c5bcaf7ee84d72cce72c67dfa598ab8d0bc8e846d113e4f
@@ -20,13 +20,11 @@ module App
20
20
  module_function
21
21
  def init( approot: nil, configdir: 'config', filename: 'cfg', env: ( ENV['APP_ENV'] || 'development' ) )
22
22
  raise NoMethodError.new('Config already defined.') if defined?( ::Cfg )
23
-
24
- root ||= Pathname( approot || Pathname( __FILE__ ).dirname ).expand_path.to_s
25
- env ||= env.to_sym.freeze
26
- loglevel ||= Kernel.const_get("Logger::#{ ENV['LOG_LEVEL'].upcase }") rescue ( env == :production ? Logger::WARN : Logger::DEBUG )
27
- config ||= SettingsHash.new
23
+ root = Pathname( approot || Pathname( __FILE__ ).dirname ).expand_path.to_s
24
+ env = env.to_sym.freeze
25
+ config = SettingsHash.new
28
26
  # Все настройки приложения + роуты
29
- configfile = "#{ root }/#{ configdir }/#{ filename }.#{ env }.yml"
27
+ configfile = "#{ root }/#{ configdir }/#{ filename }.#{ env }.yml"
30
28
  amqp_routesfile = "#{ root }/#{ configdir }/amqp.#{ env }.yml"
31
29
  http_routesfile = "#{ root }/#{ configdir }/http.#{ env }.yml"
32
30
 
@@ -35,19 +33,36 @@ module App
35
33
  # Кто первый встал, того и тапки.
36
34
  Kernel.const_set('Cfg', config)
37
35
  config.merge!( YAML.load_file( configfile ).symbolize_keys ) rescue nil
36
+ # puts "config: #{ config.to_hash.inspect }"
38
37
  $0 += "[ #{ config.app.id } ]" if config.app && config.app.id
39
- config.app.id ||= $0
40
- config.app.log ||= ENV['APP_LOG']
38
+ config[ :app ] ||= { id: $0 }
39
+ config.app[ :log ] ||= ENV['APP_LOG']
41
40
 
42
41
  config.merge!({
43
42
  root: root,
44
43
  env: env,
45
- loglevel: loglevel,
44
+ configdir: "#{ root }/#{ configdir }",
46
45
  amqproutes: File.exist?( amqp_routesfile ) ? YAML.load_file( amqp_routesfile ).symbolize_keys : {},
47
46
  httproutes: File.exist?( http_routesfile ) ? YAML.load_file( http_routesfile ).symbolize_keys : {}
48
47
  })
48
+ # puts "config: #{ config.to_hash.inspect }"
49
+ # require 'pry-byebug'
50
+ # binding.pry
51
+
52
+ config[:loglevel] =
53
+ begin
54
+ Kernel.const_get("Logger::#{
55
+ ( ENV['LOG_LEVEL'] || config.app.loglevel || ( env == :production ? :WARN : :DEBUG ) ).to_s.upcase
56
+ }")
57
+ rescue
58
+ Logger::DEBUG
59
+ end
49
60
  config
50
61
  end
51
62
 
63
+ def remove
64
+ Kernel.send( :remove_const, 'Cfg' ) if defined?( Cfg )
65
+ end
66
+
52
67
  end
53
68
  end
@@ -5,9 +5,9 @@ require 'monkey-hash'
5
5
  # Использует предварительно настроенный Cfg
6
6
 
7
7
  module App
8
- class Logger < Logger
8
+ class Logger < ::Logger
9
9
 
10
- attr_accessor :main_formatter, :amqp_formatter
10
+ attr_accessor :main_formatter, :amqp_formatter, :logdev
11
11
 
12
12
  def base_formatter
13
13
  return proc { |severity, datetime, progname, msg|
@@ -42,14 +42,14 @@ module App
42
42
 
43
43
  raise 'formatter должны быть Proc' if ! @main_formatter.is_a?(Proc) || ! @amqp_formatter.is_a?(Proc)
44
44
 
45
- logdev =
45
+ @logdev =
46
46
  case dest ||= Cfg.app.log
47
47
  when 'stderr', 'syslog', nil
48
- $stdout.close
49
- $stdout = $stderr
48
+ # $stdout.close
49
+ $stdout.reopen $stderr
50
50
  when 'stdout'
51
- $stderr.close
52
- $stderr = $stdout
51
+ # $stderr.close
52
+ $stderr.reopen $stdout
53
53
  else
54
54
  Cfg.app.log = "#{ Cfg.root }/#{ Cfg.app.log }" unless Cfg.app.log =~ %r{^/}
55
55
  FileUtils.mkdir_p Pathname.new( Cfg.app.log ).dirname
@@ -59,12 +59,18 @@ module App
59
59
  $stdout.reopen logf
60
60
  logf
61
61
  end
62
- super logdev, progname: Cfg.app.progname, level: Cfg.loglevel, formatter: @main_formatter
62
+ super @logdev, progname: Cfg.app.progname, level: Cfg.loglevel, formatter: @main_formatter
63
63
  Kernel.const_set 'Log', self
64
- Kernel.const_set 'MQLog', ::Logger.new( logdev, progname: "#{ Cfg.app.progname }+Bunny", level: Cfg.loglevel, formatter: @amqp_formatter )
64
+ Kernel.const_set 'MQLog', ::Logger.new( @logdev, progname: "#{ Cfg.app.progname }+Bunny", level: Cfg.loglevel, formatter: @amqp_formatter )
65
65
  Log.info{"#{ Cfg.env } started. thread #{ Thread.current.object_id }."}
66
66
  self
67
67
  end
68
+
69
+ def remove
70
+ Kernel.send( :remove_const, 'Log' ) if defined?( Log )
71
+ Kernel.send( :remove_const, 'Log' ) if defined?( MQLog )
72
+ end
73
+
68
74
  end
69
75
 
70
76
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cfgstore
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
4
+ version: 2.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - deemytch
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-03 00:00:00.000000000 Z
11
+ date: 2020-05-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hashie