redis 2.0.1 → 2.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -117,4 +117,4 @@ Check the [Redis Command Reference](http://code.google.com/p/redis/wiki/CommandR
117
117
 
118
118
  ## Contributing
119
119
 
120
- [Fork the project](http://github.com/ezmobius/redis-rb) and send pull requests. You can also ask for help at `#redis` on Freenode.
120
+ [Fork the project](http://github.com/ezmobius/redis-rb) and send pull requests. You can also ask for help at `#redis-rb` on Freenode.
data/Rakefile CHANGED
@@ -40,16 +40,22 @@ task :run => [:start, :test, :stop]
40
40
 
41
41
  desc "Start the Redis server"
42
42
  task :start do
43
- unless File.exists?(REDIS_PID)
44
- system "redis-server #{REDIS_CNF}"
45
- end
43
+ redis_running = \
44
+ begin
45
+ File.exists?(REDIS_PID) && Process.kill(0, File.read(REDIS_PID).to_i)
46
+ rescue Errno::ESRCH
47
+ FileUtils.rm REDIS_PID
48
+ false
49
+ end
50
+
51
+ system "redis-server #{REDIS_CNF}" unless redis_running
46
52
  end
47
53
 
48
54
  desc "Stop the Redis server"
49
55
  task :stop do
50
56
  if File.exists?(REDIS_PID)
51
- system "kill #{File.read(REDIS_PID)}"
52
- system "rm #{REDIS_PID}"
57
+ Process.kill "INT", File.read(REDIS_PID).to_i
58
+ FileUtils.rm REDIS_PID
53
59
  end
54
60
  end
55
61
 
@@ -85,6 +91,7 @@ end
85
91
  namespace :commands do
86
92
  def redis_commands
87
93
  $redis_commands ||= begin
94
+ require "open-uri"
88
95
  require "nokogiri"
89
96
 
90
97
  doc = Nokogiri::HTML(open("http://code.google.com/p/redis/wiki/CommandReference"))
@@ -127,7 +134,7 @@ namespace :commands do
127
134
  task :verify do
128
135
  require "redis"
129
136
 
130
- Dir["test/**/*_test.rb"].each { |f| require f }
137
+ Dir["test/**/*_test.rb"].each { |f| require "./#{f}" }
131
138
 
132
139
  log = StringIO.new
133
140
 
@@ -1,7 +1,7 @@
1
1
  require 'socket'
2
2
 
3
3
  class Redis
4
- VERSION = "2.0.1"
4
+ VERSION = "2.0.2"
5
5
 
6
6
  class ProtocolError < RuntimeError
7
7
  def initialize(reply_type)
@@ -157,12 +157,12 @@ class Redis
157
157
  @client.call(:rpop, key)
158
158
  end
159
159
 
160
- def blpop(key, timeout)
161
- @client.call_without_timeout(:blpop, key, timeout)
160
+ def blpop(*args)
161
+ @client.call_without_timeout(:blpop, *args)
162
162
  end
163
163
 
164
- def brpop(key, timeout)
165
- @client.call_without_timeout(:brpop, key, timeout)
164
+ def brpop(*args)
165
+ @client.call_without_timeout(:brpop, *args)
166
166
  end
167
167
 
168
168
  def rpoplpush(source, destination)
@@ -452,6 +452,8 @@ class Redis
452
452
  def quit
453
453
  @client.call(:quit)
454
454
  rescue Errno::ECONNRESET
455
+ ensure
456
+ @client.disconnect
455
457
  end
456
458
 
457
459
  def pipelined
@@ -519,6 +521,10 @@ class Redis
519
521
  @client.id
520
522
  end
521
523
 
524
+ def inspect
525
+ "#<Redis client v#{Redis::VERSION} connected to #{id} (Redis v#{info["redis_version"]})>"
526
+ end
527
+
522
528
  def method_missing(command, *args)
523
529
  @client.call(command, *args)
524
530
  end
@@ -110,7 +110,7 @@ class Redis
110
110
  self.timeout = 0
111
111
  yield
112
112
  ensure
113
- self.timeout = @timeout
113
+ self.timeout = @timeout if connected?
114
114
  end
115
115
  end
116
116
  end
@@ -0,0 +1,23 @@
1
+ require "uri/generic"
2
+
3
+ module URI
4
+ class Redis < Generic
5
+ DEFAULT_PORT = 6379
6
+
7
+ COMPONENT = [:scheme, :password, :host, :port, :db].freeze
8
+
9
+ def db
10
+ path[1..-1].to_i
11
+ end
12
+
13
+ alias password user
14
+
15
+ protected
16
+ def check_path(value)
17
+ if super(value)
18
+ end
19
+ end
20
+ end
21
+
22
+ @@schemes["REDIS"] = Redis
23
+ end
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redis
3
3
  version: !ruby/object:Gem::Version
4
- hash: 13
5
4
  prerelease: false
6
5
  segments:
7
6
  - 2
8
7
  - 0
9
- - 1
10
- version: 2.0.1
8
+ - 2
9
+ version: 2.0.2
11
10
  platform: ruby
12
11
  authors:
13
12
  - Ezra Zygmuntowicz
@@ -22,7 +21,7 @@ autorequire: redis
22
21
  bindir: bin
23
22
  cert_chain: []
24
23
 
25
- date: 2010-05-29 00:00:00 -03:00
24
+ date: 2010-06-21 00:00:00 -03:00
26
25
  default_executable:
27
26
  dependencies: []
28
27
 
@@ -44,6 +43,7 @@ files:
44
43
  - lib/redis/hash_ring.rb
45
44
  - lib/redis/pipeline.rb
46
45
  - lib/redis/subscribe.rb
46
+ - lib/redis/url.rb
47
47
  - lib/redis.rb
48
48
  has_rdoc: true
49
49
  homepage: http://github.com/ezmobius/redis-rb
@@ -59,7 +59,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
59
59
  requirements:
60
60
  - - ">="
61
61
  - !ruby/object:Gem::Version
62
- hash: 3
63
62
  segments:
64
63
  - 0
65
64
  version: "0"
@@ -68,7 +67,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
68
67
  requirements:
69
68
  - - ">="
70
69
  - !ruby/object:Gem::Version
71
- hash: 3
72
70
  segments:
73
71
  - 0
74
72
  version: "0"