module Deviant
Constants
- DEFAULTS
- VERSION
Public Class Methods
application(name)
click to toggle source
# File lib/deviant/configuration.rb, line 26 def self.application(name) options[:name] = name end
client()
click to toggle source
# File lib/deviant.rb, line 12 def self.client @client ||= Client.new(options) end
configure(&block)
click to toggle source
# File lib/deviant/configuration.rb, line 21 def self.configure(&block) class_eval &block setup! end
elasticsearch(url)
click to toggle source
# File lib/deviant/configuration.rb, line 39 def self.elasticsearch(url) options[:elasticsearch_url] = url end
exception(e, data = {})
click to toggle source
# File lib/deviant/log.rb, line 2 def self.exception(e, data = {}) client.store e.class.name, e.message, data end
method_missing(method, *args, &block)
click to toggle source
Calls superclass method
# File lib/deviant/log.rb, line 6 def self.method_missing(method, *args, &block) if args.length > 0 && method.to_s[-1] == '!' && respond_to?(method.to_s[0...-1]) send method.to_s[0...-1], *args, &block raise args.first end super end
options()
click to toggle source
# File lib/deviant/configuration.rb, line 13 def self.options @options ||= DEFAULTS.dup end
options=(opts)
click to toggle source
# File lib/deviant/configuration.rb, line 17 def self.options=(opts) @options = opts end
redis(config)
click to toggle source
# File lib/deviant/configuration.rb, line 30 def self.redis(config) if config.is_a?(Redis) client = config.client options[:redis_url] = "#{client.scheme}://#{client.host}:#{client.port}" else options[:redis_url] = config end end
sidekiq(enabled, opts={})
click to toggle source
# File lib/deviant/configuration.rb, line 43 def self.sidekiq(enabled, opts={}) options[:sidekiq][:enabled] = enabled options[:sidekiq][:configure_server] = opts[:configure_server] || false options[:sidekiq][:configure_client] = opts[:configure_client] || false end
Private Class Methods
setup!()
click to toggle source
A lot of 3rd party libraries are singletons, so we want to make sure we don’t blow away the main application’s config.
# File lib/deviant/configuration.rb, line 53 def self.setup! @client = nil if options[:sidekiq][:enabled] if options[:sidekiq][:configure_client] Sidekiq.configure_client do |config| config.redis = { namespace: options[:name], url: options[:redis_url] } end end if options[:sidekiq][:configure_server] Sidekiq.configure_server do |config| config.redis = { namespace: options[:name], url: options[:redis_url] } end end end if options[:elasticsearch_url] Tire.configure do url Deviant.options[:elasticsearch_url] end end end