Sha256: f387aa0fe50ca65528bca47d56bd9ee1cd5b6336a187ee049d5d288a19c81f28
Contents?: true
Size: 1.62 KB
Versions: 2
Compression:
Stored size: 1.62 KB
Contents
module Stackify class Configuration attr_accessor :api_key, :app_name, :app_location, :env, :log_level, :logger, :with_proxy, :proxy_host, :proxy_port, :proxy_user, :proxy_pass, :mode, :base_api_url attr_reader :errors, :send_interval, :flood_limit, :queue_max_size def initialize @base_api_url = 'https://api.stackify.com' @errors = [] @api_key = '' @env = :production @flood_limit = 100 @queue_max_size = 1000 @send_interval = 60 @with_proxy = false @log_level = :info @mode = MODES[:both] @logger = if defined? Rails Logger.new(File.join(Rails.root, 'log', 'stackify.log')) else Logger.new('stackify.log') end end def is_valid? @errors = [] validate_mode if validate_config_types @errors.empty? end private def validate_config_types validate_api_key && validate_log_level && validate_mode_type end def validate_mode_type return true if @mode.is_a? Symbol @errors << 'Mode should be a Symbol' end def validate_api_key return true if @api_key.is_a?(String) && !@api_key.empty? @errors << 'API_KEY should be a String and not empty' end def validate_log_level return true if [:debug, :warn, :info, :error, :fatal].include? @log_level @errors << "Log's level should has one of these values: [:debug, :warn, :info, :error, :fatal]" end def validate_mode return true if MODES.has_value? @mode @errors << 'Mode should be one of these values: [:both, :logging, :metrics]' end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
stackify-api-ruby-1.0.2 | lib/stackify/utils/configuration.rb |
stackify-api-ruby-1.0.1 | lib/stackify/utils/configuration.rb |