cache 0.2.6 → 0.2.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -26,8 +26,7 @@ Gem::Specification.new do |s|
26
26
  s.add_development_dependency 'redis'
27
27
  s.add_development_dependency 'redis-namespace'
28
28
  s.add_development_dependency 'dalli'
29
- # https://github.com/fauna/memcached/pull/50
30
- s.add_development_dependency 'memcached', '<=1.2.6'
29
+ s.add_development_dependency 'memcached'
31
30
  s.add_development_dependency 'memcache-client'
32
31
  s.add_development_dependency 'rake'
33
32
  end
@@ -1,8 +1,7 @@
1
- require 'cache/version'
2
- class Cache
3
- autoload :Config, 'cache/config'
4
- autoload :Storage, 'cache/storage'
1
+ require 'cache/config'
2
+ require 'cache/storage'
5
3
 
4
+ class Cache
6
5
  # Create a new Cache instance by wrapping a client of your choice.
7
6
  #
8
7
  # Defaults to an in-process memory store.
@@ -19,7 +19,7 @@ class Cache
19
19
  if cached_v = bare.get(k) and cached_v.is_a?(::String)
20
20
  ::Marshal.load cached_v
21
21
  end
22
- elsif active_support_store?
22
+ elsif active_support_store? or dalli_store?
23
23
  bare.read k
24
24
  else
25
25
  raise "Don't know how to GET with #{bare.inspect}"
@@ -32,7 +32,7 @@ class Cache
32
32
  bare.get ks
33
33
  elsif memcached_rails? or dalli? or mem_cache?
34
34
  bare.get_multi ks
35
- elsif active_support_store?
35
+ elsif active_support_store? or dalli_store?
36
36
  bare.read_multi *ks
37
37
  else
38
38
  ks.inject({}) do |memo, k|
@@ -52,7 +52,7 @@ class Cache
52
52
  else
53
53
  bare.setex k, ttl, ::Marshal.dump(v)
54
54
  end
55
- elsif active_support_store?
55
+ elsif active_support_store? or dalli_store?
56
56
  if ttl == 0
57
57
  bare.write k, v # never expire
58
58
  else
@@ -69,7 +69,7 @@ class Cache
69
69
  begin; bare.delete(k); rescue ::Memcached::NotFound; nil; end
70
70
  elsif redis?
71
71
  bare.del k
72
- elsif dalli? or memcached_rails? or mem_cache? or active_support_store?
72
+ elsif dalli? or memcached_rails? or mem_cache? or active_support_store? or dalli_store?
73
73
  bare.delete k
74
74
  else
75
75
  raise "Don't know how to DELETE with #{bare.inspect}"
@@ -1,4 +1,4 @@
1
1
  class Cache
2
- VERSION = "0.2.6"
2
+ VERSION = "0.2.7"
3
3
  end
4
4
 
@@ -15,7 +15,7 @@ puts `env | egrep '^RUBY'`
15
15
  puts "Ruby #{RUBY_VERSION}p#{RUBY_PATCHLEVEL}"
16
16
 
17
17
  [ ["memcached", "memcached"],
18
- ["remix-stash", "remix/stash"],
18
+ # ["remix-stash", "remix/stash"],
19
19
  # ["astro-remcached", "remcached"], # Clobbers the "Memcached" constant
20
20
  ["memcache-client", "memcache"],
21
21
  ["cache", "cache"],
@@ -26,12 +26,10 @@ puts "Ruby #{RUBY_VERSION}p#{RUBY_PATCHLEVEL}"
26
26
  puts "Loaded #{gem_name} #{Gem.loaded_specs[gem_name].version.to_s rescue nil}"
27
27
  end
28
28
 
29
- MEMCACHED_HERE = File.expand_path(File.join(File.dirname(Gem.required_location('memcached', 'memcached.rb')), '..', 'test', 'profile'))
30
-
31
- class Remix::Stash
32
- # Remix::Stash API doesn't let you set servers
33
- @@clusters = {:default => Remix::Stash::Cluster.new(['127.0.0.1:43042', '127.0.0.1:43043'])}
34
- end
29
+ # class Remix::Stash
30
+ # # Remix::Stash API doesn't let you set servers
31
+ # @@clusters = {:default => Remix::Stash::Cluster.new(['127.0.0.1:43042', '127.0.0.1:43043'])}
32
+ # end
35
33
 
36
34
  class Dalli::ClientCompat < Dalli::Client
37
35
  def set(*args)
@@ -102,8 +100,30 @@ class Bench
102
100
  private
103
101
 
104
102
  def reset_servers
105
- system("ruby #{MEMCACHED_HERE}/../setup.rb")
106
- sleep(1)
103
+ # Kill memcached
104
+ system("killall -9 memcached")
105
+
106
+ # Start memcached
107
+ verbosity = (ENV['DEBUG'] ? "-vv" : "")
108
+ log = "/tmp/memcached.log"
109
+ memcached = ENV['MEMCACHED_COMMAND'] || 'memcached'
110
+ system ">#{log}"
111
+
112
+ # TCP memcached
113
+ (43042..43046).each do |port|
114
+ cmd = "#{memcached} #{verbosity} -U 0 -p #{port} >> #{log} 2>&1 &"
115
+ raise "'#{cmd}' failed to start" unless system(cmd)
116
+ end
117
+ # UDP memcached
118
+ (43052..43053).each do |port|
119
+ cmd = "#{memcached} #{verbosity} -U #{port} -p 0 >> #{log} 2>&1 &"
120
+ raise "'#{cmd}' failed to start" unless system(cmd)
121
+ end
122
+ # Domain socket memcached
123
+ (0..1).each do |i|
124
+ cmd = "#{memcached} -M -s #{UNIX_SOCKET_NAME}#{i} #{verbosity} >> #{log} 2>&1 &"
125
+ raise "'#{cmd}' failed to start" unless system(cmd)
126
+ end
107
127
  end
108
128
 
109
129
  def reset_clients
@@ -126,7 +146,7 @@ class Bench
126
146
  ['127.0.0.1:43042', '127.0.0.1:43043'],
127
147
  :no_block => true, :buffer_requests => true, :namespace => "namespace", :binary_protocol => true),
128
148
  "mclient:ascii" => MemCache.new(['127.0.0.1:43042', '127.0.0.1:43043']),
129
- "stash:bin" => Remix::Stash.new(:root),
149
+ # "stash:bin" => Remix::Stash.new(:root),
130
150
  "dalli:bin" => Dalli::ClientCompat.new(['127.0.0.1:43042', '127.0.0.1:43043'], :marshal => false, :threadsafe => false)}
131
151
  end
132
152
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cache
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.2.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2011-07-27 00:00:00.000000000Z
13
+ date: 2012-04-03 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activesupport
17
- requirement: &2152957540 !ruby/object:Gem::Requirement
17
+ requirement: !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,15 @@ dependencies:
22
22
  version: 2.3.11
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *2152957540
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ! '>='
29
+ - !ruby/object:Gem::Version
30
+ version: 2.3.11
26
31
  - !ruby/object:Gem::Dependency
27
32
  name: i18n
28
- requirement: &2152957040 !ruby/object:Gem::Requirement
33
+ requirement: !ruby/object:Gem::Requirement
29
34
  none: false
30
35
  requirements:
31
36
  - - ! '>='
@@ -33,10 +38,15 @@ dependencies:
33
38
  version: '0'
34
39
  type: :runtime
35
40
  prerelease: false
36
- version_requirements: *2152957040
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
37
47
  - !ruby/object:Gem::Dependency
38
48
  name: yard
39
- requirement: &2152956460 !ruby/object:Gem::Requirement
49
+ requirement: !ruby/object:Gem::Requirement
40
50
  none: false
41
51
  requirements:
42
52
  - - ! '>='
@@ -44,10 +54,15 @@ dependencies:
44
54
  version: '0'
45
55
  type: :development
46
56
  prerelease: false
47
- version_requirements: *2152956460
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
48
63
  - !ruby/object:Gem::Dependency
49
64
  name: test-unit
50
- requirement: &2152955960 !ruby/object:Gem::Requirement
65
+ requirement: !ruby/object:Gem::Requirement
51
66
  none: false
52
67
  requirements:
53
68
  - - ! '>='
@@ -55,10 +70,15 @@ dependencies:
55
70
  version: '0'
56
71
  type: :development
57
72
  prerelease: false
58
- version_requirements: *2152955960
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
59
79
  - !ruby/object:Gem::Dependency
60
80
  name: redis
61
- requirement: &2152955420 !ruby/object:Gem::Requirement
81
+ requirement: !ruby/object:Gem::Requirement
62
82
  none: false
63
83
  requirements:
64
84
  - - ! '>='
@@ -66,10 +86,15 @@ dependencies:
66
86
  version: '0'
67
87
  type: :development
68
88
  prerelease: false
69
- version_requirements: *2152955420
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ! '>='
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
70
95
  - !ruby/object:Gem::Dependency
71
96
  name: redis-namespace
72
- requirement: &2152954880 !ruby/object:Gem::Requirement
97
+ requirement: !ruby/object:Gem::Requirement
73
98
  none: false
74
99
  requirements:
75
100
  - - ! '>='
@@ -77,10 +102,15 @@ dependencies:
77
102
  version: '0'
78
103
  type: :development
79
104
  prerelease: false
80
- version_requirements: *2152954880
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
81
111
  - !ruby/object:Gem::Dependency
82
112
  name: dalli
83
- requirement: &2152954380 !ruby/object:Gem::Requirement
113
+ requirement: !ruby/object:Gem::Requirement
84
114
  none: false
85
115
  requirements:
86
116
  - - ! '>='
@@ -88,21 +118,31 @@ dependencies:
88
118
  version: '0'
89
119
  type: :development
90
120
  prerelease: false
91
- version_requirements: *2152954380
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ none: false
123
+ requirements:
124
+ - - ! '>='
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
92
127
  - !ruby/object:Gem::Dependency
93
128
  name: memcached
94
- requirement: &2152953800 !ruby/object:Gem::Requirement
129
+ requirement: !ruby/object:Gem::Requirement
95
130
  none: false
96
131
  requirements:
97
- - - <=
132
+ - - ! '>='
98
133
  - !ruby/object:Gem::Version
99
- version: 1.2.6
134
+ version: '0'
100
135
  type: :development
101
136
  prerelease: false
102
- version_requirements: *2152953800
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
103
143
  - !ruby/object:Gem::Dependency
104
144
  name: memcache-client
105
- requirement: &2152953300 !ruby/object:Gem::Requirement
145
+ requirement: !ruby/object:Gem::Requirement
106
146
  none: false
107
147
  requirements:
108
148
  - - ! '>='
@@ -110,10 +150,15 @@ dependencies:
110
150
  version: '0'
111
151
  type: :development
112
152
  prerelease: false
113
- version_requirements: *2152953300
153
+ version_requirements: !ruby/object:Gem::Requirement
154
+ none: false
155
+ requirements:
156
+ - - ! '>='
157
+ - !ruby/object:Gem::Version
158
+ version: '0'
114
159
  - !ruby/object:Gem::Dependency
115
160
  name: rake
116
- requirement: &2152952760 !ruby/object:Gem::Requirement
161
+ requirement: !ruby/object:Gem::Requirement
117
162
  none: false
118
163
  requirements:
119
164
  - - ! '>='
@@ -121,7 +166,12 @@ dependencies:
121
166
  version: '0'
122
167
  type: :development
123
168
  prerelease: false
124
- version_requirements: *2152952760
169
+ version_requirements: !ruby/object:Gem::Requirement
170
+ none: false
171
+ requirements:
172
+ - - ! '>='
173
+ - !ruby/object:Gem::Version
174
+ version: '0'
125
175
  description: Wraps memcached, redis(-namespace), memcache-client, dalli and handles
126
176
  their weirdnesses, including forking
127
177
  email:
@@ -177,7 +227,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
177
227
  version: '0'
178
228
  requirements: []
179
229
  rubyforge_project: cache
180
- rubygems_version: 1.8.5
230
+ rubygems_version: 1.8.21
181
231
  signing_key:
182
232
  specification_version: 3
183
233
  summary: A unified cache handling interface inspired by libraries like ActiveSupport::Cache::Store,
@@ -195,3 +245,4 @@ test_files:
195
245
  - test/test_memcached_storage.rb
196
246
  - test/test_rails_cache_storage.rb
197
247
  - test/test_redis_storage.rb
248
+ has_rdoc: