Class: Admiral::Config
- Inherits:
-
Object
- Object
- Admiral::Config
- Defined in:
- lib/admiral/config.rb
Instance Attribute Summary collapse
-
#platforms ⇒ Object
readonly
Returns the value of attribute platforms.
Instance Method Summary collapse
- #[](platform) ⇒ Object
-
#initialize ⇒ Config
constructor
A new instance of Config.
- #platform?(platform) ⇒ Boolean
Constructor Details
#initialize ⇒ Config
Returns a new instance of Config.
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/admiral/config.rb', line 10 def initialize local_config_file = ".admiral.yml" global_config_file = File.("~/.admiral.yml") if not File.exist?(local_config_file) STDERR.puts "File .admiral.yml must be present" exit! end local_config = YAML.load_file(local_config_file) if File.exist?(global_config_file) global_config = YAML.load_file(File.("~/.admiral.yml")) common_global_config = global_config['common'] common_local_config = local_config['common'] if common_global_config.nil? if common_local_config.nil? STDERR.puts "No common config defined" exit! else common_config = common_local_config end else if common_local_config.nil? common_config = common_global_config else common_config = common_global_config.merge(common_local_config) end end else common_config = local_config['common'] if common_config.nil? STDERR.puts "No common config defined" exit! end end @platforms = Hash.new @platforms_name = [] @platforms_config = Hash.new common_applications = common_config['applications'] common_applications = [] if not common_applications if local_config['platforms'].nil? STDERR.puts "No platforms defined" exit! end local_config['platforms'].each do | platform | platform_name = platform['name'] @platforms[platform_name] = platform @platforms_name << platform_name @platforms_config[platform_name] = common_config.clone @platforms_config[platform_name].merge!(platform) platform_applications = @platforms_config[platform_name]['applications'] platform_applications = [] if not platform_applications platform_applications_codes = [] platform_applications.each do |application| platform_applications_codes << application['code'] end common_applications.each do |application| if not platform_applications_codes.include?(application['code']) @platforms_config[platform_name]['applications'].push(application) end end end end |
Instance Attribute Details
#platforms ⇒ Object (readonly)
Returns the value of attribute platforms.
8 9 10 |
# File 'lib/admiral/config.rb', line 8 def platforms @platforms end |
Instance Method Details
#[](platform) ⇒ Object
87 88 89 |
# File 'lib/admiral/config.rb', line 87 def [](platform) return @platforms_config[platform] end |
#platform?(platform) ⇒ Boolean
91 92 93 |
# File 'lib/admiral/config.rb', line 91 def platform?(platform) return @platforms_config.key?(platform) end |