cfgstore 2.2.1 → 2.2.7

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.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 48930dd22a728c70fa7ae518e32f3421e534befbfb6168abb5e3c1a5913dad78
4
- data.tar.gz: 55030b26a02fa3ba35b68af3bbfb8ce8895fa036f3b7e3fc289efd208d32abc6
3
+ metadata.gz: 2cf0403e92a4ce8e9e64c93a2fdf50c4eca85a948b8fbacd9d0d016950245ac8
4
+ data.tar.gz: 264a7248f764822438bcc436b3871d0e726fe60137bc28d0c09a6175cc6560c8
5
5
  SHA512:
6
- metadata.gz: 003c5624ef1cd315175d360dc08dd7a39ff185637540da12b35ce40091c5dde3a2b58e1ed0bfd0e9faeae79dc889c28df1522a219d67a38f019d59e07284ed69
7
- data.tar.gz: a65ea98e9bc4efd5f84f31f62562271c3a5182b7d41a2340abebd025566f62be9697f77e107f718c0b5e7c3b163f880cc05a26ba041cc45c2beca70a37a4bef5
6
+ metadata.gz: c244e26ee00aa47accce4187d166e34c70a4b58f8fd3317423f097b71f2435f8bb8dbc5982411aff1f2d1773e39bb6dee4f5e8511e27f6b3e6f23d41a0986a0a
7
+ data.tar.gz: 7778fea5cbd94011b48ac05f013c9bc72a9b931409670394d50948cfc674b5f1ade49746bdc46c5286d79d838f437fbdae13aa4782a4cf99da6dbe95dac0a88c
@@ -2,12 +2,10 @@ require 'yaml'
2
2
  require 'singleton'
3
3
  require 'pathname'
4
4
  require 'monkey-hash'
5
- require_relative 'settings-hash'
6
5
 
7
6
  module App
8
7
 
9
8
  ##
10
- # Удобный прокси к SettingsHash
11
9
  # СДЕЛАТЬ: автоперезагрузку при изменении файла.
12
10
 
13
11
  module Config
@@ -20,34 +18,49 @@ module App
20
18
  module_function
21
19
  def init( approot: nil, configdir: 'config', filename: 'cfg', env: ( ENV['APP_ENV'] || 'development' ) )
22
20
  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
21
+ root = Pathname( approot || Pathname( __FILE__ ).dirname ).expand_path.to_s
22
+ env = env.to_sym.freeze
23
+ config = {}
28
24
  # Все настройки приложения + роуты
29
- configfile = "#{ root }/#{ configdir }/#{ filename }.#{ env }.yml"
25
+ configfile = "#{ root }/#{ configdir }/#{ filename }.#{ env }.yml"
30
26
  amqp_routesfile = "#{ root }/#{ configdir }/amqp.#{ env }.yml"
31
27
  http_routesfile = "#{ root }/#{ configdir }/http.#{ env }.yml"
32
28
 
33
29
  # raise ArgumentError.new("Не найден #{ configfile }!") unless File.exist?( configfile )
34
30
  # raise ArgumentError.new("Не найден #{ amqp_routesfile }!") unless File.exist?( amqp_routesfile )
35
- # Кто первый встал, того и тапки.
31
+ # Кто первый встал, того и тапки.
36
32
  Kernel.const_set('Cfg', config)
37
33
  config.merge!( YAML.load_file( configfile ).symbolize_keys ) rescue nil
38
- $0 += "[ #{ config.app.id } ]" if config.app && config.app.id
39
- config.app.id ||= $0
40
- config.app.log ||= ENV['APP_LOG']
34
+ # puts "config: #{ config.to_hash.inspect }"
35
+ $0 += "[ #{ config.app.id } ]" if config.app? && config.app.id?
36
+ config[ :app ] ||= { id: $0 }
37
+ config.app[ :log ] ||= ENV['APP_LOG']
41
38
 
42
39
  config.merge!({
43
40
  root: root,
44
41
  env: env,
45
- loglevel: loglevel,
42
+ configdir: "#{ root }/#{ configdir }",
46
43
  amqproutes: File.exist?( amqp_routesfile ) ? YAML.load_file( amqp_routesfile ).symbolize_keys : {},
47
44
  httproutes: File.exist?( http_routesfile ) ? YAML.load_file( http_routesfile ).symbolize_keys : {}
48
45
  })
46
+ # puts "config: #{ config.to_hash.inspect }"
47
+ # require 'pry-byebug'
48
+ # binding.pry
49
+
50
+ config[:loglevel] =
51
+ begin
52
+ Kernel.const_get("Logger::#{
53
+ ( ENV['LOG_LEVEL'] || config.app.loglevel || ( env == :production ? :WARN : :DEBUG ) ).to_s.upcase
54
+ }")
55
+ rescue
56
+ Logger::DEBUG
57
+ end
49
58
  config
50
59
  end
51
60
 
61
+ def remove
62
+ Kernel.send( :remove_const, 'Cfg' ) if defined?( Cfg )
63
+ end
64
+
52
65
  end
53
66
  end
@@ -45,11 +45,11 @@ module App
45
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
@@ -65,6 +65,12 @@ module App
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.1
4
+ version: 2.2.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - deemytch
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-16 00:00:00.000000000 Z
11
+ date: 2020-07-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hashie
@@ -47,12 +47,11 @@ extra_rdoc_files: []
47
47
  files:
48
48
  - lib/app-config.rb
49
49
  - lib/app-logger.rb
50
- - lib/settings-hash.rb
51
- homepage:
50
+ homepage:
52
51
  licenses:
53
52
  - GPL-2.0
54
53
  metadata: {}
55
- post_install_message:
54
+ post_install_message:
56
55
  rdoc_options: []
57
56
  require_paths:
58
57
  - lib
@@ -67,8 +66,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
67
66
  - !ruby/object:Gem::Version
68
67
  version: '0'
69
68
  requirements: []
70
- rubygems_version: 3.1.2
71
- signing_key:
69
+ rubygems_version: 3.1.3
70
+ signing_key:
72
71
  specification_version: 4
73
72
  summary: Loads and serves configs.
74
73
  test_files: []
@@ -1,4 +0,0 @@
1
- require 'hashie'
2
-
3
- class SettingsHash < ::Hashie::Mash
4
- end