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



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

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
# 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
    str = File.read('properties.yml')
    YAML.safe_load(expand_env_vars(str)).deep_symbolize_keys
  end
end

#propertiesObject



30
31
32
# File 'lib/serverspec_launcher/helpers/properties_loader.rb', line 30

def properties
  @properties ||= @raw_properties
end