class Isomer::Sources::Yaml

Attributes

base[R]
file[R]
required[R]

Public Class Methods

new(parameters, options={}) click to toggle source
Calls superclass method Isomer::Sources::Base::new
# File lib/isomer/sources/yaml.rb, line 6
def initialize(parameters, options={})
  @file = options[:file].to_s
  raise Isomer::Error, "YAML source requires the 'file' parameter" if file.empty?

  @base = options[:base]
  @required = !!options[:required]

  super(parameters)
end

Public Instance Methods

load() click to toggle source
# File lib/isomer/sources/yaml.rb, line 16
def load
  if File.exists?(file)
    values = YAML.load_file(file)
    if !values.is_a?(Hash)
      @configuration = {}
    elsif base && values.has_key?(base)
      @configuration = values[base] || {}
    else
      @configuration = values
    end
  else
    raise Isomer::Error, "Missing required configuration file '#{file}'" if required
    @configuration = {}
  end
end