class Triglav::Agent::Base::Setting
A base class represents settings coming from config.yml and cli options
You usually do not need to customize this class, but if you want to implement your original, configure
Triglav::Agent::Configuration.setting_class =
Constants
- DEFAULT_APP_ENV
- DEFAULT_LOG
- DEFAULT_LOG_LEVEL
Attributes
cli_options[R]
Public Class Methods
new(cli_options = {})
click to toggle source
# File lib/triglav/agent/base/setting.rb, line 21 def initialize(cli_options = {}) @cli_options = cli_options if dotenv? require 'dotenv' Dotenv.load end end
Public Instance Methods
[](key)
click to toggle source
# File lib/triglav/agent/base/setting.rb, line 86 def [](key) config[key] end
app_env()
click to toggle source
# File lib/triglav/agent/base/setting.rb, line 36 def app_env @app_env ||= ENV['APP_ENV'] || DEFAULT_APP_ENV end
config_file()
click to toggle source
# File lib/triglav/agent/base/setting.rb, line 40 def config_file @cli_options[:config] end
debug?()
click to toggle source
# File lib/triglav/agent/base/setting.rb, line 56 def debug? @cli_options[:debug] end
dig(*args)
click to toggle source
# File lib/triglav/agent/base/setting.rb, line 90 def dig(*args) config.dig(*args) end
dotenv?()
click to toggle source
# File lib/triglav/agent/base/setting.rb, line 52 def dotenv? @cli_options[:dotenv] end
log()
click to toggle source
# File lib/triglav/agent/base/setting.rb, line 68 def log @cli_options[:log] || config.dig(:serverengine, :log) || DEFAULT_LOG end
log_level()
click to toggle source
# File lib/triglav/agent/base/setting.rb, line 64 def log_level @cli_options[:log_level] || config.dig(:serverengine, :log_level) || DEFAULT_LOG_LEVEL end
logger()
click to toggle source
# File lib/triglav/agent/base/setting.rb, line 60 def logger @logger ||= Logger.new(log, serverengine_logger_options) end
reload()
click to toggle source
# File lib/triglav/agent/base/setting.rb, line 29 def reload Dotenv.overload if dotenv? @config = nil @logger.close rescue nil @logger = nil end
serverengine_options()
click to toggle source
# File lib/triglav/agent/base/setting.rb, line 72 def serverengine_options serverengine_options = config[:serverengine].dup || {} # serverengine_options[:workers] = 1 # default # serverengine_options[:worker_type] = 'embedded' # default serverengine_options.keys.each do |k| serverengine_options.delete(k) if k.to_s.start_with?('log') end serverengine_options.merge!({ logger: logger, log_level: log_level, setting: self, }) end
status_file()
click to toggle source
# File lib/triglav/agent/base/setting.rb, line 44 def status_file @status_file ||= @cli_options[:status] || config.dig(:triglav, :status_file) || 'status.yml' end
token_file()
click to toggle source
# File lib/triglav/agent/base/setting.rb, line 48 def token_file @token_file ||= @cli_options[:token] || config.dig(:triglav, :token_file) || 'token.yml' end
Private Instance Methods
config()
click to toggle source
# File lib/triglav/agent/base/setting.rb, line 96 def config @config ||= begin raw = File.read(config_file) erb = ERB.new(raw, nil, "-").tap {|_| _.filename = config_file } all = HashUtil.deep_symbolize_keys(YAML.load(erb.result(binding))) all[app_env.to_sym] end end
serverengine_logger_options()
click to toggle source
# File lib/triglav/agent/base/setting.rb, line 106 def serverengine_logger_options { log: log, log_level: log_level, } end