Sha256: 18f4849642cf0f0b46c7133e6a72dd7cc7523dd7d08c72900a5986b8ddee258f
Contents?: true
Size: 1.81 KB
Versions: 9
Compression:
Stored size: 1.81 KB
Contents
# frozen_string_literal: true %w[algorithms alternative configuration exceptions experiment experiment_catalog extensions goals_collection helper metric persistence encapsulated_helper trial user version zscore].each do |f| require "split/#{f}" end require 'split/engine' if defined?(Rails) require 'redis/namespace' module Split extend self attr_accessor :configuration # Accepts: # 1. A 'hostname:port' string # 2. A 'hostname:port:db' string (to select the Redis db) # 3. A 'hostname:port/namespace' string (to set the Redis namespace) # 4. A redis URL string 'redis://host:port' # 5. An instance of `Redis`, `Redis::Client`, `Redis::DistRedis`, # or `Redis::Namespace`. def redis=(server) if server.respond_to? :split if server["redis://"] redis = Redis.connect(:url => server, :thread_safe => true) else server, namespace = server.split('/', 2) host, port, db = server.split(':') redis = Redis.new(:host => host, :port => port, :thread_safe => true, :db => db) end namespace ||= :split @redis = Redis::Namespace.new(namespace, :redis => redis) elsif server.respond_to? :namespace= @redis = server else @redis = Redis::Namespace.new(:split, :redis => server) end end # Returns the current Redis connection. If none has been created, will # create a new one. def redis return @redis if @redis self.redis = self.configuration.redis_url self.redis end # Call this method to modify defaults in your initializers. # # @example # Split.configure do |config| # config.ignore_ip_addresses = '192.168.2.1' # end def configure self.configuration ||= Configuration.new yield(configuration) end end Split.configure {}
Version data entries
9 entries across 9 versions & 1 rubygems