File tree Expand file tree Collapse file tree 6 files changed +38
-12
lines changed Expand file tree Collapse file tree 6 files changed +38
-12
lines changed Original file line number Diff line number Diff line change 11source "https://rubygems.org"
22
33gemspec
4+
5+ gem 'redis'
6+ gem 'dalli'
Original file line number Diff line number Diff line change @@ -6,11 +6,21 @@ Suo provides a very performant distributed lock solution using Compare-And-Set (
66
77## Installation
88
9- Add this line to your application’s Gemfile:
9+ 1 . Install the gem
1010
11- ``` ruby
12- gem ' suo'
13- ```
11+ ``` ruby
12+ gem ' suo'
13+ ```
14+
15+ 2 . Install at least one caching library gem
16+
17+ ``` ruby
18+ # to use Suo::Client::Memcached
19+ gem ' dalli'
20+
21+ # to use Suo::Client::Redis
22+ gem ' redis'
23+ ```
1424
1525## Usage
1626
Original file line number Diff line number Diff line change 11require "securerandom"
22require "monitor"
33
4- require "dalli"
5- require "dalli/cas/client"
4+ begin
5+ require "dalli"
6+ require "dalli/cas/client"
7+ rescue LoadError
8+ end
69
7- require "redis"
10+ begin
11+ require "redis"
12+ rescue LoadError
13+ end
814
915require "msgpack"
1016
1117require "suo/version"
1218
1319require "suo/errors"
1420require "suo/client/base"
15- require "suo/client/memcached"
16- require "suo/client/redis"
21+
22+ require "suo/client/memcached" if defined? ( Dalli )
23+ require "suo/client/redis" if defined? ( Redis )
Original file line number Diff line number Diff line change @@ -2,7 +2,11 @@ module Suo
22 module Client
33 class Memcached < Base
44 def initialize ( key , options = { } )
5- options [ :client ] ||= Dalli ::Client . new ( options [ :connection ] || ENV [ "MEMCACHE_SERVERS" ] || "127.0.0.1:11211" )
5+ if !options [ :client ] && !defined? ( ::Dalli )
6+ raise "Dalli class found. Please make sure you have 'dalli' as a dependency in your gemfile (`gem 'dalli'`)."
7+ end
8+
9+ options [ :client ] ||= ::Dalli ::Client . new ( options [ :connection ] || ENV [ "MEMCACHE_SERVERS" ] || "127.0.0.1:11211" )
610 super
711 end
812
Original file line number Diff line number Diff line change @@ -4,6 +4,10 @@ class Redis < Base
44 OK_STR = "OK" . freeze
55
66 def initialize ( key , options = { } )
7+ if !options [ :client ] && !defined? ( ::Redis )
8+ raise "Redis class not found. Please make sure you have 'redis' as a dependency in your gemfile (`gem 'redis'`)."
9+ end
10+
711 options [ :client ] ||= ::Redis . new ( options [ :connection ] || { } )
812 super
913 end
Original file line number Diff line number Diff line change @@ -21,8 +21,6 @@ Gem::Specification.new do |spec|
2121
2222 spec . required_ruby_version = ">= 2.5"
2323
24- spec . add_dependency "dalli"
25- spec . add_dependency "redis"
2624 spec . add_dependency "msgpack"
2725
2826 spec . add_development_dependency "bundler"
You can’t perform that action at this time.
0 commit comments