dalli 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of dalli might be problematic. Click here for more details.

data/lib/dalli/client.rb CHANGED
@@ -210,7 +210,7 @@ module Dalli
210
210
  # If you perform another operation after this, the connections will be re-established.
211
211
  def close
212
212
  if @ring
213
- @ring.servers.map { |s| s.close }
213
+ @ring.servers.each { |s| s.close }
214
214
  @ring = nil
215
215
  end
216
216
  end
data/lib/dalli/options.rb CHANGED
@@ -9,36 +9,38 @@ module Dalli
9
9
  # Dalli::Server.extend(Dalli::Threadsafe)
10
10
  #
11
11
  module Threadsafe
12
+ def self.extended(obj)
13
+ obj.init_threadsafe
14
+ end
15
+
12
16
  def request(op, *args)
13
- lock.synchronize do
17
+ @lock.synchronize do
14
18
  super
15
19
  end
16
20
  end
17
21
 
18
22
  def alive?
19
- lock.synchronize do
23
+ @lock.synchronize do
20
24
  super
21
25
  end
22
26
  end
23
27
 
24
28
  def close
25
- lock.synchronize do
29
+ @lock.synchronize do
26
30
  super
27
31
  end
28
32
  end
29
33
 
30
34
  def lock!
31
- lock.mon_enter
35
+ @lock.mon_enter
32
36
  end
33
37
 
34
38
  def unlock!
35
- lock.mon_exit
39
+ @lock.mon_exit
36
40
  end
37
41
 
38
- private
39
- def lock
40
- @lock ||= Monitor.new
42
+ def init_threadsafe
43
+ @lock = Monitor.new
41
44
  end
42
-
43
45
  end
44
46
  end
data/lib/dalli/socket.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  begin
2
2
  require 'kgio'
3
- puts "Using kgio socket IO" if defined?($TESTING)
3
+ puts "Using kgio socket IO" if defined?($TESTING) && $TESTING
4
4
 
5
5
  class Dalli::Server::KSocket < Kgio::Socket
6
6
  attr_accessor :options
@@ -41,7 +41,7 @@ begin
41
41
 
42
42
  rescue LoadError
43
43
 
44
- puts "Using standard socket IO (#{RUBY_DESCRIPTION})" if defined?($TESTING)
44
+ puts "Using standard socket IO (#{RUBY_DESCRIPTION})" if defined?($TESTING) && $TESTING
45
45
  if defined?(RUBY_ENGINE) && RUBY_ENGINE == 'jruby'
46
46
 
47
47
  class Dalli::Server::KSocket < TCPSocket
data/lib/dalli/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Dalli
2
- VERSION = '1.0.3'
2
+ VERSION = '1.0.4'
3
3
  end
@@ -1,3 +1,4 @@
1
+ # encoding: utf-8
1
2
  require 'helper'
2
3
 
3
4
  class TestActiveSupport < Test::Unit::TestCase
@@ -65,6 +66,27 @@ class TestActiveSupport < Test::Unit::TestCase
65
66
  end
66
67
  end
67
68
  end
69
+
70
+ should 'support read_multi with an array' do
71
+ with_activesupport do
72
+ memcached do
73
+ connect
74
+ case
75
+ when rails3?
76
+ x = rand_key
77
+ y = rand_key
78
+ assert_equal({}, @mc.read_multi([x, y]))
79
+ assert_equal({}, @dalli.read_multi([x, y]))
80
+ @dalli.write(x, '123')
81
+ @dalli.write(y, 123)
82
+ @mc.write(x, '123')
83
+ @mc.write(y, 123)
84
+ assert_equal({ x => '123', y => 123 }, @dalli.read_multi([x, y]))
85
+ assert_equal({}, @mc.read_multi([x,y]))
86
+ end
87
+ end
88
+ end
89
+ end
68
90
 
69
91
  should 'support raw read_multi' do
70
92
  with_activesupport do
@@ -164,6 +186,20 @@ class TestActiveSupport < Test::Unit::TestCase
164
186
  end
165
187
  end
166
188
  end
189
+
190
+ should 'handle crazy characters from far-away lands' do
191
+ with_activesupport do
192
+ memcached do
193
+ connect
194
+ key = "fooƒ"
195
+ value = 'bafƒ'
196
+ # assert_equal true, @mc.write(key, value)
197
+ assert_equal true, @dalli.write(key, value)
198
+ # assert_equal true, @mc.read(key, value)
199
+ assert_equal value, @dalli.read(key)
200
+ end
201
+ end
202
+ end
167
203
 
168
204
  def connect
169
205
  @dalli = ActiveSupport::Cache.lookup_store(:dalli_store, 'localhost:19122', :expires_in => 10.seconds, :namespace => 'x')
@@ -30,5 +30,14 @@ class TestEncoding < Test::Unit::TestCase
30
30
  end
31
31
  end
32
32
 
33
+ should 'not allow non-ASCII keys' do
34
+ memcached do |dc|
35
+ key = 'fooƒ'
36
+ assert_raise ArgumentError do
37
+ dc.set(key, 'bar')
38
+ end
39
+ end
40
+ end
41
+
33
42
  end
34
43
  end
metadata CHANGED
@@ -2,61 +2,60 @@
2
2
  name: dalli
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 1.0.3
5
+ version: 1.0.4
6
6
  platform: ruby
7
7
  authors:
8
- - Mike Perham
8
+ - Mike Perham
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-03-18 00:00:00 -07:00
14
- default_executable:
13
+ date: 2011-05-14 00:00:00 Z
15
14
  dependencies:
16
- - !ruby/object:Gem::Dependency
17
- name: shoulda
18
- prerelease: false
19
- requirement: &id001 !ruby/object:Gem::Requirement
20
- none: false
21
- requirements:
22
- - - ">="
23
- - !ruby/object:Gem::Version
24
- version: "0"
25
- type: :development
26
- version_requirements: *id001
27
- - !ruby/object:Gem::Dependency
28
- name: mocha
29
- prerelease: false
30
- requirement: &id002 !ruby/object:Gem::Requirement
31
- none: false
32
- requirements:
33
- - - ">="
34
- - !ruby/object:Gem::Version
35
- version: "0"
36
- type: :development
37
- version_requirements: *id002
38
- - !ruby/object:Gem::Dependency
39
- name: rails
40
- prerelease: false
41
- requirement: &id003 !ruby/object:Gem::Requirement
42
- none: false
43
- requirements:
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- version: 3.0.1
47
- type: :development
48
- version_requirements: *id003
49
- - !ruby/object:Gem::Dependency
50
- name: memcache-client
51
- prerelease: false
52
- requirement: &id004 !ruby/object:Gem::Requirement
53
- none: false
54
- requirements:
55
- - - ">="
56
- - !ruby/object:Gem::Version
57
- version: 1.8.5
58
- type: :development
59
- version_requirements: *id004
15
+ - !ruby/object:Gem::Dependency
16
+ name: shoulda
17
+ prerelease: false
18
+ requirement: &id001 !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ type: :development
25
+ version_requirements: *id001
26
+ - !ruby/object:Gem::Dependency
27
+ name: mocha
28
+ prerelease: false
29
+ requirement: &id002 !ruby/object:Gem::Requirement
30
+ none: false
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: "0"
35
+ type: :development
36
+ version_requirements: *id002
37
+ - !ruby/object:Gem::Dependency
38
+ name: rails
39
+ prerelease: false
40
+ requirement: &id003 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: "0"
46
+ type: :development
47
+ version_requirements: *id003
48
+ - !ruby/object:Gem::Dependency
49
+ name: memcache-client
50
+ prerelease: false
51
+ requirement: &id004 !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: 1.8.5
57
+ type: :development
58
+ version_requirements: *id004
60
59
  description: High performance memcached client for Ruby
61
60
  email: mperham@gmail.com
62
61
  executables: []
@@ -66,79 +65,80 @@ extensions: []
66
65
  extra_rdoc_files: []
67
66
 
68
67
  files:
69
- - lib/dalli.rb
70
- - lib/action_controller/session/dalli_store.rb
71
- - lib/action_dispatch/middleware/session/dalli_store.rb
72
- - lib/active_support/cache/dalli_store.rb
73
- - lib/active_support/cache/dalli_store23.rb
74
- - lib/dalli/client.rb
75
- - lib/dalli/compatibility.rb
76
- - lib/dalli/memcache-client.rb
77
- - lib/dalli/options.rb
78
- - lib/dalli/ring.rb
79
- - lib/dalli/server.rb
80
- - lib/dalli/socket.rb
81
- - lib/dalli/version.rb
82
- - LICENSE
83
- - README.md
84
- - History.md
85
- - Rakefile
86
- - Gemfile
87
- - dalli.gemspec
88
- - Performance.md
89
- - Upgrade.md
90
- - test/abstract_unit.rb
91
- - test/benchmark_test.rb
92
- - test/helper.rb
93
- - test/memcached_mock.rb
94
- - test/test_active_support.rb
95
- - test/test_compatibility.rb
96
- - test/test_dalli.rb
97
- - test/test_encoding.rb
98
- - test/test_failover.rb
99
- - test/test_network.rb
100
- - test/test_ring.rb
101
- - test/test_sasl.rb
102
- - test/test_session_store.rb
103
- has_rdoc: true
68
+ - lib/action_controller/session/dalli_store.rb
69
+ - lib/action_dispatch/middleware/session/dalli_store.rb
70
+ - lib/action_dispatch/middleware/session/dalli_store.rbc
71
+ - lib/active_support/cache/dalli_store.rb
72
+ - lib/active_support/cache/dalli_store.rbc
73
+ - lib/active_support/cache/dalli_store23.rb
74
+ - lib/dalli/client.rb
75
+ - lib/dalli/compatibility.rb
76
+ - lib/dalli/memcache-client.rb
77
+ - lib/dalli/options.rb
78
+ - lib/dalli/ring.rb
79
+ - lib/dalli/server.rb
80
+ - lib/dalli/socket.rb
81
+ - lib/dalli/version.rb
82
+ - lib/dalli.rb
83
+ - LICENSE
84
+ - README.md
85
+ - History.md
86
+ - Rakefile
87
+ - Gemfile
88
+ - dalli.gemspec
89
+ - Performance.md
90
+ - Upgrade.md
91
+ - test/abstract_unit.rb
92
+ - test/benchmark_test.rb
93
+ - test/helper.rb
94
+ - test/memcached_mock.rb
95
+ - test/test_active_support.rb
96
+ - test/test_compatibility.rb
97
+ - test/test_dalli.rb
98
+ - test/test_encoding.rb
99
+ - test/test_failover.rb
100
+ - test/test_network.rb
101
+ - test/test_ring.rb
102
+ - test/test_sasl.rb
103
+ - test/test_session_store.rb
104
104
  homepage: http://github.com/mperham/dalli
105
105
  licenses: []
106
106
 
107
107
  post_install_message:
108
108
  rdoc_options:
109
- - --charset=UTF-8
109
+ - --charset=UTF-8
110
110
  require_paths:
111
- - lib
111
+ - lib
112
112
  required_ruby_version: !ruby/object:Gem::Requirement
113
113
  none: false
114
114
  requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: "0"
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: "0"
118
118
  required_rubygems_version: !ruby/object:Gem::Requirement
119
119
  none: false
120
120
  requirements:
121
- - - ">="
122
- - !ruby/object:Gem::Version
123
- version: "0"
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: "0"
124
124
  requirements: []
125
125
 
126
126
  rubyforge_project:
127
- rubygems_version: 1.5.1
127
+ rubygems_version: 1.7.2
128
128
  signing_key:
129
129
  specification_version: 3
130
130
  summary: High performance memcached client for Ruby
131
131
  test_files:
132
- - test/abstract_unit.rb
133
- - test/benchmark_test.rb
134
- - test/helper.rb
135
- - test/memcached_mock.rb
136
- - test/test_active_support.rb
137
- - test/test_compatibility.rb
138
- - test/test_dalli.rb
139
- - test/test_encoding.rb
140
- - test/test_failover.rb
141
- - test/test_network.rb
142
- - test/test_ring.rb
143
- - test/test_sasl.rb
144
- - test/test_session_store.rb
132
+ - test/abstract_unit.rb
133
+ - test/benchmark_test.rb
134
+ - test/helper.rb
135
+ - test/memcached_mock.rb
136
+ - test/test_active_support.rb
137
+ - test/test_compatibility.rb
138
+ - test/test_dalli.rb
139
+ - test/test_encoding.rb
140
+ - test/test_failover.rb
141
+ - test/test_network.rb
142
+ - test/test_ring.rb
143
+ - test/test_sasl.rb
144
+ - test/test_session_store.rb