class Philotic::Config

Constants

ENV_PREFIX

Attributes

connection[RW]
message_return_handler[W]

Public Class Methods

new(connection, config={}) click to toggle source
# File lib/philotic/config.rb, line 21
def initialize(connection, config={})
  load_config config
  @connection = connection
end

Public Instance Methods

connection_attempts() click to toggle source
# File lib/philotic/config.rb, line 34
def connection_attempts
  @connection_retries ||= defaults[:connection_attempts].to_i
end
content_type() click to toggle source
# File lib/philotic/config.rb, line 93
def content_type
  Philotic::Serialization::Serializer.factory(serializations.last).content_type
end
load_config(config) click to toggle source
# File lib/philotic/config.rb, line 76
def load_config(config)
  config.each do |k, v|
    mutator = "#{k}="
    send(mutator, v) if respond_to? mutator
  end
end
load_file(filename, env = 'development') click to toggle source
# File lib/philotic/config.rb, line 83
def load_file(filename, env = 'development')
  config = YAML.load_file(filename)
  load_config(config[env])
end
log_level() click to toggle source
# File lib/philotic/config.rb, line 30
def log_level
  @log_level ||= defaults[:log_level].to_i
end
logger() click to toggle source
# File lib/philotic/config.rb, line 26
def logger
  connection.logger
end
message_return_handler() click to toggle source
# File lib/philotic/config.rb, line 44
def message_return_handler
  @message_return_handler ||= lambda do |basic_return, metadata, payload|
    logger.warn { "Philotic message #{JSON.parse payload} was returned! reply_code = #{basic_return.reply_code}, reply_text = #{basic_return.reply_text} headers = #{metadata[:headers]}" }
  end
end
parse_rabbit_uri() click to toggle source
# File lib/philotic/config.rb, line 50
def parse_rabbit_uri
  settings            = Bunny::Session.parse_uri(@rabbit_url || defaults[:rabbit_url])
  settings[:password] = settings.delete(:pass)

  %w[scheme host port user password vhost].each do |setting|
    setting       = setting.to_sym
    current_value = send("rabbit_#{setting}")

    # only use the value from the URI if the existing value is nil or the default
    if settings[setting] && [Defaults.const_get("rabbit_#{setting}".upcase), nil].include?(current_value)
      send("rabbit_#{setting}=", settings[setting])
    end
  end

end
prefetch_count() click to toggle source
# File lib/philotic/config.rb, line 38
def prefetch_count
  @prefetch_count ||= defaults[:prefetch_count].to_i
end
rabbit_url() click to toggle source
# File lib/philotic/config.rb, line 66
def rabbit_url
  parse_rabbit_uri
  "#{rabbit_scheme}://#{rabbit_user}:#{rabbit_password}@#{rabbit_host}:#{rabbit_port}/#{CGI.escape rabbit_vhost}"
end
sanitized_rabbit_url() click to toggle source
# File lib/philotic/config.rb, line 71
def sanitized_rabbit_url
  parse_rabbit_uri
  rabbit_url.gsub("#{rabbit_user}:#{rabbit_password}", '[USER_REDACTED]:[PASSWORD_REDACTED]')
end
serializations() click to toggle source
# File lib/philotic/config.rb, line 88
def serializations
  self.serializations = MultiJson.load(defaults[:serializations]) unless @serializations
  @serializations
end