class Fleck::Configuration
Attributes
app_name[RW]
default_host[RW]
default_pass[RW]
default_port[RW]
default_queue[RW]
default_user[RW]
default_vhost[RW]
filters[RW]
hosts[R]
logfile[R]
loglevel[R]
progname[R]
Public Class Methods
new()
click to toggle source
# File lib/fleck/configuration.rb, line 9 def initialize @logfile = STDOUT @loglevel = ::Logger::INFO @progname = "Fleck" @app_name = $0 @default_host = "127.0.0.1" @default_port = 5672 @default_user = nil @default_pass = nil @default_vhost = "/" @default_queue = "default" @filters = ["password", "secret", "token"] @hosts = [] @credentials = {} end
Public Instance Methods
add_host(data)
click to toggle source
# File lib/fleck/configuration.rb, line 32 def add_host(data) if data.is_a?(String) host, port = data.split(":") port = port ? port.to_i : 5672 @hosts << Fleck::HostRating.new(host: host, port: port) @credentials["#{host}:#{port}"] ||= { user: @default_user, pass: @default_pass } elsif data.is_a?(Hash) data = data.to_hash_with_indifferent_access host = data[:host] || @default_host port = data[:port] || @default_port @hosts << Fleck::HostRating.new(host: data[:host] || @default_host, port: data[:port] || @default_port) @credentials["#{host}:#{port}"] ||= { user: data[:user] || @default_user, pass: data[:pass] || @default_pass } else raise ArgumentError.new("Invalid host type #{data.inspect}: String or Hash expected") end end
default_options()
click to toggle source
# File lib/fleck/configuration.rb, line 49 def default_options best = @hosts.sort.first opts = {} host = best ? best.host : @default_host port = best ? best.port : @default_port credentials = @credentials["#{host}:#{port}"] || {user: @default_user, pass: @default_pass} opts[:host] = host opts[:port] = port opts[:user] = credentials[:user] || @default_user opts[:pass] = credentials[:pass] || @default_pass opts[:vhost] = @default_vhost opts[:queue] = @default_queue return opts end
formatter()
click to toggle source
# File lib/fleck/configuration.rb, line 120 def formatter return @formatter if @formatter @formatter = proc do |severity, datetime, progname, msg| color = :blue case severity when 'DEBUG' color = "#512DA8" when 'INFO' color = "#33691E" when 'WARN' color = "#E65100" when 'ERROR', 'FATAL' color = "#B71C1C" else color = "#00BCD4" end "[#{datetime.strftime('%F %T.%L')}]".color(:cyan) + "(#{$$})".color(:blue) + "|#{severity}|".color(color) + (progname ? "<#{progname}>".color(:yellow) : "") + " #{msg}\n" end return @formatter end
hosts=(*args)
click to toggle source
# File lib/fleck/configuration.rb, line 25 def hosts=(*args) args.flatten.each do |host| add_host host end return @hosts end
logfile=(new_logfile)
click to toggle source
# File lib/fleck/configuration.rb, line 67 def logfile=(new_logfile) if @logfile != new_logfile @logfile = new_logfile reset_logger end return @logfile end
logger()
click to toggle source
# File lib/fleck/configuration.rb, line 90 def logger return @logger || reset_logger end
logger=(new_logger)
click to toggle source
# File lib/fleck/configuration.rb, line 94 def logger=(new_logger) if new_logger.nil? @logger.close if @logger @logger = ::Logger.new(nil) else @logger.close if @logger @logger = new_logger.clone @logger.formatter = formatter @logger.progname = @progname @logger.level = @loglevel end return @logger end
loglevel=(new_loglevel)
click to toggle source
# File lib/fleck/configuration.rb, line 76 def loglevel=(new_loglevel) @loglevel = new_loglevel @logger.level = @loglevel if @logger return @loglevel end
progname=(new_progname)
click to toggle source
# File lib/fleck/configuration.rb, line 83 def progname=(new_progname) @progname = new_progname @logger.progname = @progname if @logger return @progname end
reset_logger()
click to toggle source
# File lib/fleck/configuration.rb, line 109 def reset_logger new_logger = ::Logger.new(@logfile) new_logger.formatter = formatter new_logger.progname = @progname new_logger.level = @loglevel @logger.close if @logger @logger = new_logger return @logger end