class Pec::ConfigFile

Attributes

config_name[RW]

Public Class Methods

new(config_name) click to toggle source
# File lib/pec/config_file.rb, line 5
def initialize(config_name)
  self.config_name = File.exist?("#{config_name}.erb") ? "#{config_name}.erb" : config_name
end

Public Instance Methods

load() click to toggle source
# File lib/pec/config_file.rb, line 9
def load
  base = read_file(config_name)
  include_files = YAML.load(base).to_hash.find{|k,v| k.match(/^includes$/) && !v.nil? }
  inc = include_files ? include_files[1].map {|f| read_file(f)}.join("\n") : ""
  YAML.load(base + inc)
end
read_file(file_name) click to toggle source
# File lib/pec/config_file.rb, line 16
def read_file(file_name)
  if File.exist?(file_name)
    case
      when file_name.match(/.erb$/)
        erb = ERB.new(File.read(file_name), nil, '%-')
        erb.result
      when file_name.match(/.yaml$/) || file_name.match(/.yml$/)
        File.read(file_name)
      else
        raise "not match file type must be yaml or erb"
    end
  else
    raise " #{file_name} not exiets!"
  end
end