Class: Admiral::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/admiral/config.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfig

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.expand_path("~/.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.expand_path("~/.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

#platformsObject (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

Returns:

  • (Boolean)


91
92
93
# File 'lib/admiral/config.rb', line 91

def platform?(platform)
  return @platforms_config.key?(platform)
end