51 lines
1.2 KiB
Ruby
51 lines
1.2 KiB
Ruby
require 'hashr'
|
|
require 'yaml'
|
|
|
|
# Encapsulates the configuration necessary for travis-listener.
|
|
#
|
|
# Configuration values will be read from
|
|
#
|
|
# * either ENV['travis_config'] (this variable is set on Heroku by `travis config [env]`,
|
|
# see travis-cli) or
|
|
# * a local file config/travis.yml which contains the current env key (e.g. development,
|
|
# production, test)
|
|
#
|
|
# The env key can be set through various ENV variables, see Travis::Config.env.
|
|
#
|
|
module Travis
|
|
module Web
|
|
class Config < Hashr
|
|
class << self
|
|
def env
|
|
ENV['ENV'] || ENV['RAILS_ENV'] || ENV['RACK_ENV'] || 'development'
|
|
end
|
|
|
|
def load_env
|
|
@load_env ||= YAML.load(ENV['travis_config']) if ENV['travis_config']
|
|
end
|
|
|
|
def load_file
|
|
@load_file ||= YAML.load_file(filename)[env] if File.exists?(filename) rescue {}
|
|
end
|
|
|
|
def filename
|
|
@filename ||= File.expand_path('config/travis.yml')
|
|
end
|
|
end
|
|
|
|
define ssl: { hsts: true }
|
|
|
|
default _access: [:key]
|
|
|
|
def initialize(data = nil, *args)
|
|
data ||= self.class.load_env || self.class.load_file || {}
|
|
super
|
|
end
|
|
|
|
def env
|
|
self.class.env
|
|
end
|
|
end
|
|
end
|
|
end
|