cfgstore 2.2.2 → 2.2.8

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: 06f25d10d594c31dfea6cf201e022a36f447998812aa57643ec4b26fd7b70fbd
4
- data.tar.gz: 894794218e8e6c4317ef7681281240479d5a8a2311ed673035020b4b3a3e3784
3
+ metadata.gz: c797f16240a8dc25a6ea0aea48c7c4a40125f1de221d121ef9cb00b4a485ed9c
4
+ data.tar.gz: fe0b79cc30fd18cb8db96eb7386e303362b47806e84f295bc9923205f4f5206b
5
5
  SHA512:
6
- metadata.gz: b10321ab9950640ec092fbb496b8c6f24bfd25f74659f4c4e9850754c94e8461c783d534a96cca87668df968144a49815f886b702074ecc742a2c89c41edb7af
7
- data.tar.gz: e91e710c2b1759dd1e70320ebac964d974dadf10dcd7695144c4070535fabd3ed6b17d8ea6558736edf98c321dfbb88273535bb854d1264fc2e1e70cae7bd9a1
6
+ metadata.gz: 6099f710167e47a398786bd343b3279a046e3b686a224c182735179844b815ac319a8d6434da6094cb5b6e93b5d3c45f5bc777b79cd96aa286a716c2fd5002da
7
+ data.tar.gz: fe98b93f2379c5f180455358bff9f00a0e095379335cb9e208379c9c9b8019c11264f21c611a0fbb09aaa3a6edb17d7e41d1617474b49656a4b1a9e2a8fcc35c
@@ -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,45 @@ 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
- 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']
33
+ config.merge!( YAML.load_file( configfile ).keys_to_symbols ) rescue nil
34
+ $0 += "[ #{ config.app.id } ]" if config.app? && config.app.id?
35
+ config[ :app ] ||= { id: $0 }
36
+ config.app[ :log ] ||= ENV['APP_LOG']
41
37
 
42
38
  config.merge!({
43
39
  root: root,
44
40
  env: env,
45
- loglevel: loglevel,
46
- amqproutes: File.exist?( amqp_routesfile ) ? YAML.load_file( amqp_routesfile ).symbolize_keys : {},
47
- httproutes: File.exist?( http_routesfile ) ? YAML.load_file( http_routesfile ).symbolize_keys : {}
41
+ configdir: "#{ root }/#{ configdir }",
42
+ amqproutes: File.exist?( amqp_routesfile ) ? YAML.load_file( amqp_routesfile ).keys_to_symbols : {},
43
+ httproutes: File.exist?( http_routesfile ) ? YAML.load_file( http_routesfile ).keys_to_symbols : {}
48
44
  })
45
+
46
+ config[:loglevel] =
47
+ begin
48
+ Kernel.const_get("Logger::#{
49
+ ( ENV['LOG_LEVEL'] || config.app.loglevel || ( env == :production ? :WARN : :DEBUG ) ).to_s.upcase
50
+ }")
51
+ rescue
52
+ Logger::DEBUG
53
+ end
49
54
  config
50
55
  end
51
56
 
57
+ def remove
58
+ Kernel.send( :remove_const, 'Cfg' ) if defined?( Cfg )
59
+ end
60
+
52
61
  end
53
62
  end
@@ -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,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cfgstore
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.2
4
+ version: 2.2.8
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-25 00:00:00.000000000 Z
11
+ date: 2020-07-01 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: hashie
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: monkey-hash
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -47,12 +33,11 @@ extra_rdoc_files: []
47
33
  files:
48
34
  - lib/app-config.rb
49
35
  - lib/app-logger.rb
50
- - lib/settings-hash.rb
51
- homepage:
36
+ homepage:
52
37
  licenses:
53
38
  - GPL-2.0
54
39
  metadata: {}
55
- post_install_message:
40
+ post_install_message:
56
41
  rdoc_options: []
57
42
  require_paths:
58
43
  - lib
@@ -67,8 +52,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
67
52
  - !ruby/object:Gem::Version
68
53
  version: '0'
69
54
  requirements: []
70
- rubygems_version: 3.1.2
71
- signing_key:
55
+ rubygems_version: 3.1.3
56
+ signing_key:
72
57
  specification_version: 4
73
58
  summary: Loads and serves configs.
74
59
  test_files: []
@@ -1,4 +0,0 @@
1
- require 'hashie'
2
-
3
- class SettingsHash < ::Hashie::Mash
4
- end