ef06699127338cb679932aa9d161029b6b5fdea5
Dev Refactoring to have config...

Dev authored 7 years ago

1) module RCM
2)   class ConfigManager
3)     PACKAGES = 'packages'.freeze
4)     FILES = 'files'.freeze
5)     SERVICES = 'services'.freeze
6)     LOGGING = 'logging'.freeze
7) 
Dev Moving initialization to co...

Dev authored 7 years ago

8)     @wanted = nil
Dev Refactoring to have config...

Dev authored 7 years ago

9)     @logger = nil
10)     @env = ''
11) 
12)     VALID_LOG_LEVELS = %w[fatal error info debug].freeze
13) 
14)     def initialize()
15)       @env = ENV.fetch('ENVIRONMENT', '')
Dev Moving initialization to co...

Dev authored 7 years ago

16)       @wanted = {
17)         PACKAGES => {},
18)         FILES => {},
19)         SERVICES => {}
20)       }
21) 
Dev Refactoring to have config...

Dev authored 7 years ago

22)       config_file = @env.empty? ? 'config.yaml' : "config_#{@env}.yaml"
Dev Cleaning up whitespace.

Dev authored 7 years ago

23) 
Dev Refactoring to have config...

Dev authored 7 years ago

24)       raise "#{config_file} not found." unless ::File.readable?(config_file)
25) 
26)       config = YAML.load_file(config_file)
27)       config.each do |yaml_objects|
28)         yaml_objects.each do |collection, resource_definition|
29)           case collection
30)           when LOGGING
31)             configure_logging(resource_definition)
32) 
33)           when PACKAGES
34)             parse_packages(resource_definition)
35) 
36)           when FILES
37)             parse_files(resource_definition)
38) 
39)           when SERVICES
40)             parse_services(resource_definition)
41)           end # of case
42)         end # of iterating over yaml_objects
43)       end # of iterating over config
44)     end
45) 
46)     def logger
47)       @logger
48)     end
49) 
50)     def packages
51)       @wanted[PACKAGES]
52)     end
53) 
54)     def files
55)       @wanted[FILES]
56)     end
57) 
58)     def services
59)       @wanted[SERVICES]
60)     end
61) 
62)     def configure_logging(markup)
63)       file = markup[0]['file']
64)       device = ''
65)       level = markup[0]['level']
66) 
67)       if (VALID_LOG_LEVELS & [level]).empty?
Dev Cleaning up whitespace.

Dev authored 7 years ago

68)         raise "Invalid log level '#{level}'. Valid log levels are: #{VALID_LOG_LEVELS.join(', ')}"