Class: PropertiesLoader

Inherits:
Object
  • Object
show all
Defined in:
lib/serverspec_launcher/helpers/properties_loader.rb

Instance Method Summary collapse

Constructor Details

#initialize(properties = nil) ⇒ PropertiesLoader

Returns a new instance of PropertiesLoader.



6
7
8
# File 'lib/serverspec_launcher/helpers/properties_loader.rb', line 6

def initialize(properties = nil)
  load properties
end

Instance Method Details

#expand_env_vars(text) ⇒ Object



23
24
25
26
27
28
29
30
# File 'lib/serverspec_launcher/helpers/properties_loader.rb', line 23

def expand_env_vars(text)
  text.gsub /\${([^}]+)}/ do
    data = $1.split(/:[-=]/)
    var_name = data[0]
    var_default = data[1]
    ENV[var_name] || var_default
  end
end

#load(properties) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/serverspec_launcher/helpers/properties_loader.rb', line 10

def load(properties)

  @raw_properties =  if properties.is_a? Hash
    properties.deep_symbolize_keys
  elsif properties.is_a? String
    YAML.safe_load(expand_env_vars(properties)).deep_symbolize_keys
  else
    properties_file = ENV['SERVERSPEC_CONFIG'] || 'properties.yml'
    str = File.read(properties_file)
    YAML.safe_load(expand_env_vars(str)).deep_symbolize_keys
  end
end

#propertiesObject



32
33
34
# File 'lib/serverspec_launcher/helpers/properties_loader.rb', line 32

def properties
  @properties ||= @raw_properties
end