Sha256: 9e3d6f114c282de942e6c68c3a8196886cc87ce7733854b879253e0559a8f1f0

Contents?: true

Size: 786 Bytes

Versions: 1

Compression:

Stored size: 786 Bytes

Contents

require 'yaml'
require 'wrapbox/configuration'

module Wrapbox
  class ConfigRepository
    def initialize
      @configs = {}
    end

    def load_yaml(yaml_file)
      file = ERB.new(File.read(yaml_file)).result
      configs = if Gem::Version.new(Psych::VERSION) >= Gem::Version.new("4.0.0")
        YAML.load(file, aliases: true)
      else
        YAML.load(file)
      end
      configs.each do |name, configuration|
        load_config(name, configuration.merge("name" => name))
      end
    end

    def load_config(name, configuration)
      @configs[name.to_sym] = Configuration.load_config(configuration)
    end

    def default
      @configs[:default]
    end

    def get(name)
      name ? @configs[name.to_sym] : default
    end
    alias_method(:[], :get)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
wrapbox-0.10.0 lib/wrapbox/config_repository.rb