Sha256: 31c42e76fa9a63b1e3f483404baa6455137150dcaae6e4893fd32731a4acefa6

Contents?: true

Size: 983 Bytes

Versions: 2

Compression:

Stored size: 983 Bytes

Contents

require 'redis'
require 'connection_pool'
require 'active_model'
require 'active_support/all'
require 'yaml'

require 'modis/version'
require 'modis/configuration'
require 'modis/attribute'
require 'modis/errors'
require 'modis/persistence'
require 'modis/transaction'
require 'modis/finder'
require 'modis/index'
require 'modis/model'

module Modis
  @mutex = Mutex.new

  class << self
    attr_accessor :connection_pool, :redis_options, :connection_pool_size,
                  :connection_pool_timeout
  end

  self.redis_options = {}
  self.connection_pool_size = 5
  self.connection_pool_timeout = 5

  def self.connection_pool
    return @connection_pool if @connection_pool
    @mutex.synchronize do
      options = { size: connection_pool_size, timeout: connection_pool_timeout }
      @connection_pool = ConnectionPool.new(options) { Redis.new(redis_options) }
    end
  end

  def self.with_connection
    connection_pool.with { |connection| yield(connection) }
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
modis-1.3.0 lib/modis.rb
modis-1.2.0 lib/modis.rb