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.
Files changed (27) hide show
  1. data/lib/gems/cachetastic-2.0.0/bin/cachetastic_drb_server +115 -0
  2. data/lib/gems/cachetastic-2.0.0/lib/cachetastic/adapters/base.rb +78 -0
  3. data/lib/gems/cachetastic-2.0.0/lib/cachetastic/adapters/drb.rb +51 -0
  4. data/lib/gems/cachetastic-2.0.0/lib/cachetastic/adapters/file.rb +49 -0
  5. data/lib/gems/cachetastic-2.0.0/lib/cachetastic/adapters/file_base.rb +86 -0
  6. data/lib/gems/cachetastic-2.0.0/lib/cachetastic/adapters/html_file.rb +68 -0
  7. data/lib/gems/cachetastic-2.0.0/lib/cachetastic/adapters/local_memory.rb +68 -0
  8. data/lib/gems/cachetastic-2.0.0/lib/cachetastic/adapters/memcache.rb +114 -0
  9. data/lib/gems/cachetastic-2.0.0/lib/cachetastic/adapters/store_object.rb +28 -0
  10. data/lib/gems/cachetastic-2.0.0/lib/cachetastic/cacheable.rb +196 -0
  11. data/lib/gems/cachetastic-2.0.0/lib/cachetastic/caches/base.rb +238 -0
  12. data/lib/gems/cachetastic-2.0.0/lib/cachetastic/caches/mack_session_cache.rb +3 -0
  13. data/lib/gems/cachetastic-2.0.0/lib/cachetastic/caches/page_cache.rb +6 -0
  14. data/lib/gems/cachetastic-2.0.0/lib/cachetastic/caches/rails_session_cache.rb +12 -0
  15. data/lib/gems/cachetastic-2.0.0/lib/cachetastic/connection.rb +24 -0
  16. data/lib/gems/cachetastic-2.0.0/lib/cachetastic/errors/unsupported_adapter.rb +7 -0
  17. data/lib/gems/cachetastic-2.0.0/lib/cachetastic/logger.rb +49 -0
  18. data/lib/gems/cachetastic-2.0.0/lib/cachetastic/rails_extensions/active_record_base.rb +24 -0
  19. data/lib/gems/cachetastic-2.0.0/lib/cachetastic/rails_extensions/cgi_session_store.rb +59 -0
  20. data/lib/gems/cachetastic-2.0.0/lib/cachetastic/ruby_extensions/object.rb +8 -0
  21. data/lib/gems/cachetastic-2.0.0/lib/cachetastic.rb +70 -0
  22. data/lib/gems/memcache-client-1.5.0/lib/memcache.rb +805 -0
  23. data/lib/gems/memcache-client-1.5.0/lib/memcache_util.rb +90 -0
  24. data/lib/gems.rb +13 -0
  25. data/lib/mack-caching.rb +2 -1
  26. data/lib/mack-caching_tasks.rb +2 -0
  27. 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
@@ -1,4 +1,5 @@
1
- require 'rubygems'
1
+ require File.join(File.dirname(__FILE__), 'gems')
2
+
2
3
  require 'cachetastic'
3
4
 
4
5
  configatron.mack.caching.set_default(:use_page_caching, false)
@@ -1,3 +1,5 @@
1
+ require File.join(File.dirname(__FILE__), 'gems')
2
+
1
3
  # load tasks
2
4
  Dir.glob(File.join(File.dirname(__FILE__), "mack-caching", "tasks", "*.rake")).each do |f|
3
5
  load(f)
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.1
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-10-26 00:00:00 -04:00
12
+ date: 2008-11-30 00:00:00 -05:00
13
13
  default_executable:
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
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.2.0
100
+ rubygems_version: 1.3.1
66
101
  signing_key:
67
102
  specification_version: 2
68
103
  summary: Caching extensions for Mack