Class: SecretConfig::SettingInterpolator

Inherits:
StringInterpolator show all
Defined in:
lib/secret_config/setting_interpolator.rb

Instance Method Summary collapse

Methods inherited from StringInterpolator

#initialize, #parse

Constructor Details

This class inherits a constructor from SecretConfig::StringInterpolator

Instance Method Details

#date(format = "%Y%m%d") ⇒ Object



25
26
27
# File 'lib/secret_config/setting_interpolator.rb', line 25

def date(format = "%Y%m%d")
  Date.today.strftime(format)
end

#env(name, default = :no_default_supplied) ⇒ Object



33
34
35
36
37
38
39
# File 'lib/secret_config/setting_interpolator.rb', line 33

def env(name, default = :no_default_supplied)
  return ENV[name] if ENV.key?(name)

  return default unless default == :no_default_supplied

  raise(MissingEnvironmentVariable, "Missing mandatory environment variable: #{name}")
end

#hostname(format = nil) ⇒ Object



41
42
43
44
45
# File 'lib/secret_config/setting_interpolator.rb', line 41

def hostname(format = nil)
  name = Socket.gethostname
  name = name.split(".")[0] if format == "short"
  name
end

#pidObject



47
48
49
# File 'lib/secret_config/setting_interpolator.rb', line 47

def pid
  $$
end

#random(size = 32) ⇒ Object



51
52
53
# File 'lib/secret_config/setting_interpolator.rb', line 51

def random(size = 32)
  SecureRandom.urlsafe_base64(size)
end

#select(*values) ⇒ Object

Empty values return nil which removes the key entirely from the config



56
57
58
59
60
61
62
# File 'lib/secret_config/setting_interpolator.rb', line 56

def select(*values)
  if values.size < 2
    raise(ConfigurationError, "Must supply at least 2 options when using select: #{values.inspect}")
  end

  values[SecureRandom.random_number(values.count)]
end

#time(format = "%Y%m%d%H%M%S%L") ⇒ Object



29
30
31
# File 'lib/secret_config/setting_interpolator.rb', line 29

def time(format = "%Y%m%d%H%M%S%L")
  Time.now.strftime(format)
end