Sha256: 73494f4e5bc7eac37f3080b707b0c40fb68e921ce9ea4b97c45902fe2f490265
Contents?: true
Size: 1.74 KB
Versions: 4
Compression:
Stored size: 1.74 KB
Contents
require "chamber" module PushyDaemon class ConfigMissingParameter < StandardError; end class ConfigParseError < StandardError; end class Conf extend Chamber class << self attr_reader :name attr_reader :spec attr_reader :files attr_reader :version attr_reader :env end def self.prepare args = {} # Context parameters fail PushyDaemon::ConfigMissingParameter, "missing root" unless (@root = args[:root]) fail PushyDaemon::ConfigMissingParameter, "missing env" unless (@env = args[:env]) # Gemspec parameter gemspec_path = "#{args[:root]}/#{args[:gemspec]}.gemspec" fail PushyDaemon::ConfigMissingParameter, "missing gemspec" unless args[:gemspec] fail PushyDaemon::ConfigMissingParameter, "gemspec file not found: #{gemspec_path}" unless File.exist?(gemspec_path) # Load Gemspec @spec = Gem::Specification::load gemspec_path @name = @spec.name @version = @spec.version fail PushyDaemon::ConfigMissingParameter, "missing name" unless @name # Init Chamber (defaults, etc, cmdline) @files = ["#{args[:root]}/defaults.yml"] @files << File.expand_path("/etc/#{@name}.yml") @files << args[:config].to_s if args[:config] # Load configuration files load files: @files, namespaces: { environment: @env } # Try to access any key to force parsing of the files self[:dummy] # Override some values self[:log] = args[:log].to_s if args[:log] rescue Psych::SyntaxError => e fail PushyDaemon::ConfigParseError, e.message rescue Exception => e fail PushyDaemon::ConfigParseError, e.message end def self.dump self.to_hash.to_yaml end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
pushyd-0.3.4 | lib/pushyd/conf.rb |
pushyd-0.3.3 | lib/pushyd/conf.rb |
pushyd-0.3.2 | lib/pushyd/conf.rb |
pushyd-0.3.1 | lib/pushyd/conf.rb |