class VaultConsul::ConfigHandler

Public Instance Methods

scalar(value, anchor, tag, plain, quoted, style) click to toggle source
Calls superclass method
# File lib/vault-consul/config_handler.rb, line 4
def scalar value, anchor, tag, plain, quoted, style
  vault_regex = /vault:/
  consul_regex = /consul:/
  env_regex = /env:/
  translated = if value.match(vault_regex)
                 vault_tag = value.gsub(vault_regex, '')
                 vault_tag_holder = vault_tag.split('.')
                 vault_key = vault_tag_holder[0]
                 json_key = vault_tag_holder[1]
                 VaultConsul.read_vault(vault_key, json_key)
               elsif value.match(consul_regex)
                 consul_key = value.gsub(consul_regex, '')
                 VaultConsul.read_consul(consul_key)
               elsif value.match(env_regex)
                 ENV[value.gsub(env_regex, '')]
               else
                 value
               end

  raise ConfigError, "Missing config: #{value}" if translated.nil? || translated == ''
  super translated, anchor, tag, plain, quoted, style
end