redis 2.0.11 → 2.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/lib/redis.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require 'socket'
2
2
 
3
3
  class Redis
4
- VERSION = "2.0.11"
4
+ VERSION = "2.0.12"
5
5
 
6
6
  class ProtocolError < RuntimeError
7
7
  def initialize(reply_type)
@@ -36,6 +36,14 @@ class Redis
36
36
  new(options)
37
37
  end
38
38
 
39
+ def self.current
40
+ Thread.current[:redis] ||= Redis.connect
41
+ end
42
+
43
+ def self.current=(redis)
44
+ Thread.current[:redis] = redis
45
+ end
46
+
39
47
  def initialize(options = {})
40
48
  if options[:thread_safe]
41
49
  @client = Client::ThreadSafe.new(options)
data/lib/redis/client.rb CHANGED
@@ -37,8 +37,10 @@ class Redis
37
37
  end
38
38
 
39
39
  def call_loop(*args)
40
- process(args) do
41
- loop { yield(read) }
40
+ without_socket_timeout do
41
+ process(args) do
42
+ loop { yield(read) }
43
+ end
42
44
  end
43
45
  end
44
46
 
data/lib/redis/url.rb ADDED
@@ -0,0 +1,69 @@
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
24
+ require File.expand_path(File.join(File.dirname(__FILE__), "test_helper"))
25
+ require "redis/url"
26
+
27
+ class RedisURLTest < Test::Unit::TestCase
28
+ test "default values" do
29
+ uri = URI.parse("redis://localhost")
30
+
31
+ assert_equal "localhost", uri.host
32
+ assert_equal 6379, uri.port
33
+ assert_equal 0, uri.db
34
+ assert_equal nil, uri.password
35
+ end
36
+
37
+ test "password" do
38
+ uri = URI.parse("redis://secret@localhost")
39
+
40
+ assert_equal "localhost", uri.host
41
+ assert_equal 6379, uri.port
42
+ assert_equal 0, uri.db
43
+ assert_equal "secret", uri.password
44
+ end
45
+
46
+ test "db number" do
47
+ uri = URI.parse("redis://secret@localhost/15")
48
+
49
+ assert_equal "localhost", uri.host
50
+ assert_equal 6379, uri.port
51
+ assert_equal 15, uri.db
52
+ assert_equal "secret", uri.password
53
+ end
54
+
55
+ test "port" do
56
+ uri = URI.parse("redis://localhost:6380")
57
+
58
+ assert_equal "localhost", uri.host
59
+ assert_equal 6380, uri.port
60
+ assert_equal 0, uri.db
61
+ assert_equal nil, uri.password
62
+ end
63
+
64
+ test "to_s" do
65
+ uri = URI.parse("redis://secret@localhost:6380/15")
66
+
67
+ assert_equal "redis://secret@localhost:6380/15", uri.to_s
68
+ end
69
+ end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 2
7
7
  - 0
8
- - 11
9
- version: 2.0.11
8
+ - 12
9
+ version: 2.0.12
10
10
  platform: ruby
11
11
  authors:
12
12
  - Ezra Zygmuntowicz
@@ -21,7 +21,7 @@ autorequire: redis
21
21
  bindir: bin
22
22
  cert_chain: []
23
23
 
24
- date: 2010-10-14 00:00:00 -03:00
24
+ date: 2010-10-27 00:00:00 -03:00
25
25
  default_executable:
26
26
  dependencies: []
27
27
 
@@ -43,6 +43,7 @@ files:
43
43
  - lib/redis/hash_ring.rb
44
44
  - lib/redis/pipeline.rb
45
45
  - lib/redis/subscribe.rb
46
+ - lib/redis/url.rb
46
47
  - lib/redis.rb
47
48
  has_rdoc: true
48
49
  homepage: http://github.com/ezmobius/redis-rb