Sha256: 0075300ccf481ecb9dd435d4f928abd4e84bcabf8c4ca684064bcee0491062fc
Contents?: true
Size: 847 Bytes
Versions: 1
Compression:
Stored size: 847 Bytes
Contents
require 'redis' require 'connection_pool' class Money module Distributed # Wrapper over different parameters that can be provided for redis class Redis def initialize(redis) @redis_proc = build_redis_proc(redis) end def exec(&block) @redis_proc.call(&block) end private # rubocop: disable Metrics/MethodLength def build_redis_proc(redis) case redis when ::Redis proc { |&b| b.call(redis) } when ConnectionPool proc { |&b| redis.with { |r| b.call(r) } } when Hash build_redis_proc(::Redis.new(redis)) when Proc redis else raise ArgumentError, 'Redis, ConnectionPool, Hash or Proc is required' end end # rubocop: enable Metrics/MethodLength end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
money-distributed-0.0.2.2 | lib/money/distributed/redis.rb |