Sha256: 42c92dcf0c075bb9dcd1fa199c5386b566168c2e9826c06d9648255261eefdba

Contents?: true

Size: 853 Bytes

Versions: 1

Compression:

Stored size: 853 Bytes

Contents

# This is a monkey patch to decrypt the yaml files before loading into `Config` gem
require "config/sources/yaml_source"
class Config::Sources::YAMLSource
  def load
    result = nil

    if @path and File.exist?(@path)
      content = IO.read(@path)
      descrypted_content = decrypt_content(content)
      result = YAML.load(ERB.new(descrypted_content).result)
    end

    result || {}

    rescue Psych::SyntaxError => e
      raise "YAML syntax error occurred while parsing #{@path}. " \
            "Please note that YAML must be consistently indented using spaces. Tabs are not allowed. " \
            "Error: #{e.message}"
  end

  def decrypt_content(content)
    parsed_content = Caco.config.eyaml_parser.parse(content)
    parsed_content.each do |parsed|
      content.sub!(parsed.match, parsed.to_plain_text)
    end
    content
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
caco-0.1.0 lib/caco/settings_loader_monkeypatch.rb