mack-caching 0.8.1 → 0.8.2
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/gems/cachetastic-2.0.0/bin/cachetastic_drb_server +115 -0
- data/lib/gems/cachetastic-2.0.0/lib/cachetastic/adapters/base.rb +78 -0
- data/lib/gems/cachetastic-2.0.0/lib/cachetastic/adapters/drb.rb +51 -0
- data/lib/gems/cachetastic-2.0.0/lib/cachetastic/adapters/file.rb +49 -0
- data/lib/gems/cachetastic-2.0.0/lib/cachetastic/adapters/file_base.rb +86 -0
- data/lib/gems/cachetastic-2.0.0/lib/cachetastic/adapters/html_file.rb +68 -0
- data/lib/gems/cachetastic-2.0.0/lib/cachetastic/adapters/local_memory.rb +68 -0
- data/lib/gems/cachetastic-2.0.0/lib/cachetastic/adapters/memcache.rb +114 -0
- data/lib/gems/cachetastic-2.0.0/lib/cachetastic/adapters/store_object.rb +28 -0
- data/lib/gems/cachetastic-2.0.0/lib/cachetastic/cacheable.rb +196 -0
- data/lib/gems/cachetastic-2.0.0/lib/cachetastic/caches/base.rb +238 -0
- data/lib/gems/cachetastic-2.0.0/lib/cachetastic/caches/mack_session_cache.rb +3 -0
- data/lib/gems/cachetastic-2.0.0/lib/cachetastic/caches/page_cache.rb +6 -0
- data/lib/gems/cachetastic-2.0.0/lib/cachetastic/caches/rails_session_cache.rb +12 -0
- data/lib/gems/cachetastic-2.0.0/lib/cachetastic/connection.rb +24 -0
- data/lib/gems/cachetastic-2.0.0/lib/cachetastic/errors/unsupported_adapter.rb +7 -0
- data/lib/gems/cachetastic-2.0.0/lib/cachetastic/logger.rb +49 -0
- data/lib/gems/cachetastic-2.0.0/lib/cachetastic/rails_extensions/active_record_base.rb +24 -0
- data/lib/gems/cachetastic-2.0.0/lib/cachetastic/rails_extensions/cgi_session_store.rb +59 -0
- data/lib/gems/cachetastic-2.0.0/lib/cachetastic/ruby_extensions/object.rb +8 -0
- data/lib/gems/cachetastic-2.0.0/lib/cachetastic.rb +70 -0
- data/lib/gems/memcache-client-1.5.0/lib/memcache.rb +805 -0
- data/lib/gems/memcache-client-1.5.0/lib/memcache_util.rb +90 -0
- data/lib/gems.rb +13 -0
- data/lib/mack-caching.rb +2 -1
- data/lib/mack-caching_tasks.rb +2 -0
- metadata +51 -16
@@ -0,0 +1,90 @@
|
|
1
|
+
##
|
2
|
+
# A utility wrapper around the MemCache client to simplify cache access. All
|
3
|
+
# methods silently ignore MemCache errors.
|
4
|
+
|
5
|
+
module Cache
|
6
|
+
|
7
|
+
##
|
8
|
+
# Returns the object at +key+ from the cache if successful, or nil if either
|
9
|
+
# the object is not in the cache or if there was an error attermpting to
|
10
|
+
# access the cache.
|
11
|
+
#
|
12
|
+
# If there is a cache miss and a block is given the result of the block will
|
13
|
+
# be stored in the cache with optional +expiry+, using the +add+ method rather
|
14
|
+
# than +set+.
|
15
|
+
|
16
|
+
def self.get(key, expiry = 0)
|
17
|
+
start_time = Time.now
|
18
|
+
value = CACHE.get key
|
19
|
+
elapsed = Time.now - start_time
|
20
|
+
ActiveRecord::Base.logger.debug('MemCache Get (%0.6f) %s' % [elapsed, key])
|
21
|
+
if value.nil? and block_given? then
|
22
|
+
value = yield
|
23
|
+
add key, value, expiry
|
24
|
+
end
|
25
|
+
value
|
26
|
+
rescue MemCache::MemCacheError => err
|
27
|
+
ActiveRecord::Base.logger.debug "MemCache Error: #{err.message}"
|
28
|
+
if block_given? then
|
29
|
+
value = yield
|
30
|
+
put key, value, expiry
|
31
|
+
end
|
32
|
+
value
|
33
|
+
end
|
34
|
+
|
35
|
+
##
|
36
|
+
# Sets +value+ in the cache at +key+, with an optional +expiry+ time in
|
37
|
+
# seconds.
|
38
|
+
|
39
|
+
def self.put(key, value, expiry = 0)
|
40
|
+
start_time = Time.now
|
41
|
+
CACHE.set key, value, expiry
|
42
|
+
elapsed = Time.now - start_time
|
43
|
+
ActiveRecord::Base.logger.debug('MemCache Set (%0.6f) %s' % [elapsed, key])
|
44
|
+
value
|
45
|
+
rescue MemCache::MemCacheError => err
|
46
|
+
ActiveRecord::Base.logger.debug "MemCache Error: #{err.message}"
|
47
|
+
nil
|
48
|
+
end
|
49
|
+
|
50
|
+
##
|
51
|
+
# Sets +value+ in the cache at +key+, with an optional +expiry+ time in
|
52
|
+
# seconds. If +key+ already exists in cache, returns nil.
|
53
|
+
|
54
|
+
def self.add(key, value, expiry = 0)
|
55
|
+
start_time = Time.now
|
56
|
+
response = CACHE.add key, value, expiry
|
57
|
+
elapsed = Time.now - start_time
|
58
|
+
ActiveRecord::Base.logger.debug('MemCache Add (%0.6f) %s' % [elapsed, key])
|
59
|
+
(response == "STORED\r\n") ? value : nil
|
60
|
+
rescue MemCache::MemCacheError => err
|
61
|
+
ActiveRecord::Base.logger.debug "MemCache Error: #{err.message}"
|
62
|
+
nil
|
63
|
+
end
|
64
|
+
|
65
|
+
##
|
66
|
+
# Deletes +key+ from the cache in +delay+ seconds.
|
67
|
+
|
68
|
+
def self.delete(key, delay = nil)
|
69
|
+
start_time = Time.now
|
70
|
+
CACHE.delete key, delay
|
71
|
+
elapsed = Time.now - start_time
|
72
|
+
ActiveRecord::Base.logger.debug('MemCache Delete (%0.6f) %s' %
|
73
|
+
[elapsed, key])
|
74
|
+
nil
|
75
|
+
rescue MemCache::MemCacheError => err
|
76
|
+
ActiveRecord::Base.logger.debug "MemCache Error: #{err.message}"
|
77
|
+
nil
|
78
|
+
end
|
79
|
+
|
80
|
+
##
|
81
|
+
# Resets all connections to MemCache servers.
|
82
|
+
|
83
|
+
def self.reset
|
84
|
+
CACHE.reset
|
85
|
+
ActiveRecord::Base.logger.debug 'MemCache Connections Reset'
|
86
|
+
nil
|
87
|
+
end
|
88
|
+
|
89
|
+
end
|
90
|
+
|
data/lib/gems.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
path = File.expand_path(File.join(File.dirname(__FILE__), 'gems'))
|
2
|
+
Gem.set_paths(path)
|
3
|
+
|
4
|
+
Dir.glob(File.join(path, '*')).each do |p|
|
5
|
+
full_gem_name = File.basename(p)
|
6
|
+
version = full_gem_name.match(/([\d\.?]+)/).to_s
|
7
|
+
gem_name = full_gem_name.gsub("-#{version}", '')
|
8
|
+
$:.unshift(File.join(p, 'lib'))
|
9
|
+
begin
|
10
|
+
gem gem_name, "~> #{version}"
|
11
|
+
rescue Gem::LoadError
|
12
|
+
end
|
13
|
+
end
|
data/lib/mack-caching.rb
CHANGED
data/lib/mack-caching_tasks.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mack-caching
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- markbates
|
@@ -9,19 +9,10 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-
|
12
|
+
date: 2008-11-30 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
|
-
dependencies:
|
15
|
-
|
16
|
-
name: cachetastic
|
17
|
-
type: :runtime
|
18
|
-
version_requirement:
|
19
|
-
version_requirements: !ruby/object:Gem::Requirement
|
20
|
-
requirements:
|
21
|
-
- - "="
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: 2.0.0
|
24
|
-
version:
|
14
|
+
dependencies: []
|
15
|
+
|
25
16
|
description: "mack-caching was developed by: markbates"
|
26
17
|
email: mark@mackframework.com
|
27
18
|
executables: []
|
@@ -31,10 +22,54 @@ extensions: []
|
|
31
22
|
extra_rdoc_files:
|
32
23
|
- README
|
33
24
|
files:
|
25
|
+
- lib/gems
|
26
|
+
- lib/gems/cache
|
27
|
+
- lib/gems/cachetastic-2.0.0
|
28
|
+
- lib/gems/cachetastic-2.0.0/bin
|
29
|
+
- lib/gems/cachetastic-2.0.0/bin/cachetastic_drb_server
|
30
|
+
- lib/gems/cachetastic-2.0.0/lib
|
31
|
+
- lib/gems/cachetastic-2.0.0/lib/cachetastic
|
32
|
+
- lib/gems/cachetastic-2.0.0/lib/cachetastic/adapters
|
33
|
+
- lib/gems/cachetastic-2.0.0/lib/cachetastic/adapters/base.rb
|
34
|
+
- lib/gems/cachetastic-2.0.0/lib/cachetastic/adapters/drb.rb
|
35
|
+
- lib/gems/cachetastic-2.0.0/lib/cachetastic/adapters/file.rb
|
36
|
+
- lib/gems/cachetastic-2.0.0/lib/cachetastic/adapters/file_base.rb
|
37
|
+
- lib/gems/cachetastic-2.0.0/lib/cachetastic/adapters/html_file.rb
|
38
|
+
- lib/gems/cachetastic-2.0.0/lib/cachetastic/adapters/local_memory.rb
|
39
|
+
- lib/gems/cachetastic-2.0.0/lib/cachetastic/adapters/memcache.rb
|
40
|
+
- lib/gems/cachetastic-2.0.0/lib/cachetastic/adapters/store_object.rb
|
41
|
+
- lib/gems/cachetastic-2.0.0/lib/cachetastic/cacheable.rb
|
42
|
+
- lib/gems/cachetastic-2.0.0/lib/cachetastic/caches
|
43
|
+
- lib/gems/cachetastic-2.0.0/lib/cachetastic/caches/base.rb
|
44
|
+
- lib/gems/cachetastic-2.0.0/lib/cachetastic/caches/mack_session_cache.rb
|
45
|
+
- lib/gems/cachetastic-2.0.0/lib/cachetastic/caches/page_cache.rb
|
46
|
+
- lib/gems/cachetastic-2.0.0/lib/cachetastic/caches/rails_session_cache.rb
|
47
|
+
- lib/gems/cachetastic-2.0.0/lib/cachetastic/connection.rb
|
48
|
+
- lib/gems/cachetastic-2.0.0/lib/cachetastic/errors
|
49
|
+
- lib/gems/cachetastic-2.0.0/lib/cachetastic/errors/unsupported_adapter.rb
|
50
|
+
- lib/gems/cachetastic-2.0.0/lib/cachetastic/logger.rb
|
51
|
+
- lib/gems/cachetastic-2.0.0/lib/cachetastic/rails_extensions
|
52
|
+
- lib/gems/cachetastic-2.0.0/lib/cachetastic/rails_extensions/active_record_base.rb
|
53
|
+
- lib/gems/cachetastic-2.0.0/lib/cachetastic/rails_extensions/cgi_session_store.rb
|
54
|
+
- lib/gems/cachetastic-2.0.0/lib/cachetastic/ruby_extensions
|
55
|
+
- lib/gems/cachetastic-2.0.0/lib/cachetastic/ruby_extensions/object.rb
|
56
|
+
- lib/gems/cachetastic-2.0.0/lib/cachetastic.rb
|
57
|
+
- lib/gems/doc
|
58
|
+
- lib/gems/gems
|
59
|
+
- lib/gems/memcache-client-1.5.0
|
60
|
+
- lib/gems/memcache-client-1.5.0/lib
|
61
|
+
- lib/gems/memcache-client-1.5.0/lib/memcache.rb
|
62
|
+
- lib/gems/memcache-client-1.5.0/lib/memcache_util.rb
|
63
|
+
- lib/gems/specifications
|
64
|
+
- lib/gems.rb
|
65
|
+
- lib/mack-caching
|
34
66
|
- lib/mack-caching/errors.rb
|
67
|
+
- lib/mack-caching/page_caching
|
35
68
|
- lib/mack-caching/page_caching/controller_extensions.rb
|
36
69
|
- lib/mack-caching/page_caching/page_caching.rb
|
70
|
+
- lib/mack-caching/sessions
|
37
71
|
- lib/mack-caching/sessions/cachetastic_session_store.rb
|
72
|
+
- lib/mack-caching/tasks
|
38
73
|
- lib/mack-caching/tasks/cachetastic.rake
|
39
74
|
- lib/mack-caching.rb
|
40
75
|
- lib/mack-caching_tasks.rb
|
@@ -42,8 +77,8 @@ files:
|
|
42
77
|
has_rdoc: true
|
43
78
|
homepage: http://www.mackframework.com
|
44
79
|
post_install_message:
|
45
|
-
rdoc_options:
|
46
|
-
|
80
|
+
rdoc_options:
|
81
|
+
- --exclude=gems/
|
47
82
|
require_paths:
|
48
83
|
- lib
|
49
84
|
- lib
|
@@ -62,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
62
97
|
requirements: []
|
63
98
|
|
64
99
|
rubyforge_project: magrathea
|
65
|
-
rubygems_version: 1.
|
100
|
+
rubygems_version: 1.3.1
|
66
101
|
signing_key:
|
67
102
|
specification_version: 2
|
68
103
|
summary: Caching extensions for Mack
|