class Slnky::Config
Public Class Methods
configure(name, config={})
click to toggle source
# File lib/slnky/config.rb, line 18 def configure(name, config={}) config.deep_stringify_keys! @name = name @environment = ENV['SLNKY_ENV'] || config['environment'] || 'development' config['service'] = name config['environment'] = @environment file = ENV['SLNKY_CONFIG']||"~/.slnky/config.yaml" config.merge!(config_file(file)) server = ENV['SLNKY_URL']||config['url'] config.merge!(config_server(server)) @config = self.new(config) end
instance()
click to toggle source
def load_file(file)
self.load(YAML.load_file(File.expand_path(file)))
end
# File lib/slnky/config.rb, line 35 def instance @config || configure('unknown') end
reset!()
click to toggle source
# File lib/slnky/config.rb, line 39 def reset! @config = nil end
Protected Class Methods
config_file(file)
click to toggle source
def merge(config)
@config.merge!(config)
end
# File lib/slnky/config.rb, line 49 def config_file(file) return {} if file =~ /\~/ && !ENV['HOME'] path = File.expand_path(file) return {} unless File.exists?(path) template = Tilt::ERBTemplate.new(path) output = template.render(self, {}) cfg = YAML.load(output) cfg = cfg['slnky'] || cfg cfg = cfg[@environment] || cfg cfg rescue => e puts "failed to load file #{file}: #{e.message}" {} end
config_server(server)
click to toggle source
# File lib/slnky/config.rb, line 64 def config_server(server) return {} unless server server = "https://#{server}" unless server =~ /^http/ JSON.parse(open("#{server}/configs/#{@name}") { |f| f.read }) rescue => e puts "failed to load server #{server}: #{e.message}" {} end
Public Instance Methods
development?()
click to toggle source
# File lib/slnky/config.rb, line 74 def development? !self.environment || self.environment == 'development' end
production?()
click to toggle source
# File lib/slnky/config.rb, line 78 def production? self.environment == 'production' end
test?()
click to toggle source
# File lib/slnky/config.rb, line 82 def test? self.environment == 'test' end