cachetastic 2.1.4 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (90) hide show
  1. data/LICENSE +21 -0
  2. data/README +57 -43
  3. data/doc/classes/Cachetastic/Adapters.html +180 -0
  4. data/doc/classes/Cachetastic/Adapters/Base.html +206 -123
  5. data/doc/classes/Cachetastic/Adapters/File.html +17 -130
  6. data/doc/classes/Cachetastic/Adapters/LocalMemory.html +7 -228
  7. data/doc/classes/Cachetastic/Adapters/Memcached.html +193 -0
  8. data/doc/classes/Cachetastic/Cache.html +425 -0
  9. data/doc/classes/Cachetastic/Cacheable.html +26 -30
  10. data/doc/classes/Cachetastic/Cacheable/ClassAndInstanceMethods.html +66 -62
  11. data/doc/classes/Cachetastic/Cacheable/ClassOnlyMethods.html +30 -30
  12. data/doc/classes/Cachetastic/Logger.html +31 -33
  13. data/doc/created.rid +1 -1
  14. data/doc/files/{lib/cachetastic/adapters/html_file_rb.html → LICENSE.html} +29 -34
  15. data/doc/files/README.html +91 -57
  16. data/doc/files/lib/cachetastic/adapters/base_rb.html +1 -39
  17. data/doc/files/lib/cachetastic/adapters/file_rb.html +1 -21
  18. data/doc/files/lib/cachetastic/adapters/local_memory_rb.html +1 -9
  19. data/doc/files/lib/cachetastic/{ruby_extensions/kernel_rb.html → adapters/memcached_rb.html} +4 -4
  20. data/doc/files/lib/cachetastic/{ruby_extensions/string_rb.html → cache_rb.html} +5 -5
  21. data/doc/files/lib/cachetastic/cacheable_rb.html +1 -1
  22. data/doc/files/lib/cachetastic/{caches/base_rb.html → extensions/string_rb.html} +5 -5
  23. data/doc/files/lib/cachetastic/logger_rb.html +1 -7
  24. data/doc/files/lib/cachetastic/{adapters/store_object_rb.html → store_object_rb.html} +3 -3
  25. data/doc/files/lib/cachetastic_rb.html +4 -95
  26. data/doc/fr_class_index.html +3 -15
  27. data/doc/fr_file_index.html +5 -16
  28. data/doc/fr_method_index.html +26 -78
  29. data/lib/cachetastic.rb +16 -70
  30. data/lib/cachetastic/adapters/base.rb +178 -76
  31. data/lib/cachetastic/adapters/file.rb +63 -46
  32. data/lib/cachetastic/adapters/local_memory.rb +36 -67
  33. data/lib/cachetastic/adapters/memcached.rb +114 -0
  34. data/lib/cachetastic/cache.rb +165 -0
  35. data/lib/cachetastic/cacheable.rb +19 -15
  36. data/lib/cachetastic/extensions/string.rb +8 -0
  37. data/lib/cachetastic/logger.rb +41 -41
  38. data/lib/cachetastic/store_object.rb +22 -0
  39. metadata +43 -64
  40. data/bin/cachetastic_drb_server +0 -115
  41. data/doc/classes/ActiveRecord/Base.html +0 -194
  42. data/doc/classes/CGI/Session/CachetasticStore.html +0 -124
  43. data/doc/classes/Cachetastic/Adapters/Drb.html +0 -332
  44. data/doc/classes/Cachetastic/Adapters/FileBase.html +0 -309
  45. data/doc/classes/Cachetastic/Adapters/HtmlFile.html +0 -224
  46. data/doc/classes/Cachetastic/Adapters/Memcache.html +0 -498
  47. data/doc/classes/Cachetastic/Caches/Base.html +0 -643
  48. data/doc/classes/Cachetastic/Caches/Base/RegisteredCaches.html +0 -179
  49. data/doc/classes/Cachetastic/Caches/MackSessionCache.html +0 -119
  50. data/doc/classes/Cachetastic/Caches/PageCache.html +0 -121
  51. data/doc/classes/Cachetastic/Caches/RailsSessionCache.html +0 -154
  52. data/doc/classes/Cachetastic/Connection.html +0 -212
  53. data/doc/classes/Cachetastic/Errors/UnsupportedAdapter.html +0 -146
  54. data/doc/classes/Object.html +0 -222
  55. data/doc/classes/String.html +0 -172
  56. data/doc/files/lib/cachetastic/adapters/drb_rb.html +0 -115
  57. data/doc/files/lib/cachetastic/adapters/file_base_rb.html +0 -109
  58. data/doc/files/lib/cachetastic/adapters/memcache_rb.html +0 -127
  59. data/doc/files/lib/cachetastic/caches/mack_session_cache_rb.html +0 -107
  60. data/doc/files/lib/cachetastic/caches/page_cache_rb.html +0 -109
  61. data/doc/files/lib/cachetastic/caches/rails_session_cache_rb.html +0 -107
  62. data/doc/files/lib/cachetastic/connection_rb.html +0 -107
  63. data/doc/files/lib/cachetastic/errors/unsupported_adapter_rb.html +0 -101
  64. data/doc/files/lib/cachetastic/rails_extensions/active_record_base_rb.html +0 -101
  65. data/doc/files/lib/cachetastic/rails_extensions/cgi_session_store_rb.html +0 -109
  66. data/doc/files/lib/cachetastic/ruby_extensions/object_rb.html +0 -101
  67. data/lib/cachetastic/adapters/drb.rb +0 -51
  68. data/lib/cachetastic/adapters/file_base.rb +0 -86
  69. data/lib/cachetastic/adapters/html_file.rb +0 -68
  70. data/lib/cachetastic/adapters/memcache.rb +0 -114
  71. data/lib/cachetastic/adapters/store_object.rb +0 -28
  72. data/lib/cachetastic/caches/base.rb +0 -238
  73. data/lib/cachetastic/caches/mack_session_cache.rb +0 -3
  74. data/lib/cachetastic/caches/page_cache.rb +0 -6
  75. data/lib/cachetastic/caches/rails_session_cache.rb +0 -12
  76. data/lib/cachetastic/connection.rb +0 -24
  77. data/lib/cachetastic/errors/unsupported_adapter.rb +0 -7
  78. data/lib/cachetastic/rails_extensions/active_record_base.rb +0 -24
  79. data/lib/cachetastic/rails_extensions/cgi_session_store.rb +0 -59
  80. data/lib/cachetastic/ruby_extensions/kernel.rb +0 -25
  81. data/lib/cachetastic/ruby_extensions/object.rb +0 -22
  82. data/lib/cachetastic/ruby_extensions/string.rb +0 -15
  83. data/test/active_record_test.rb +0 -89
  84. data/test/cacheable_test.rb +0 -88
  85. data/test/cachetastic_unit_test.rb +0 -74
  86. data/test/config.rb +0 -30
  87. data/test/drb_adapter_test.rb +0 -14
  88. data/test/file_adapter_test.rb +0 -49
  89. data/test/memcache_adapter_test.rb +0 -18
  90. data/test/test_helper.rb +0 -75
@@ -1,4 +1,4 @@
1
- module Cachetastic
1
+ module Cachetastic # :nodoc:
2
2
  # Include this module into an Object to achieve simplistic Object level caching.
3
3
  #
4
4
  # Example:
@@ -21,31 +21,37 @@ module Cachetastic
21
21
  module Cacheable
22
22
 
23
23
  module ClassAndInstanceMethods
24
- # Returns the Cachetastic::Caches::Base object associated with the object.
24
+ # Returns the Cachetastic::Cache object associated with the object.
25
25
  # If a cache hasn't been defined the one will be created on the fly.
26
26
  # The cache for the object is expected to be defined as:
27
27
  # Cachetastic::Cacheable::{CLASS_NAME_HERE}Cache
28
28
  #
29
- # Example:
29
+ # Examples:
30
30
  # class Person
31
31
  # include Cachetastic::Cacheable
32
- # attr_accessor :name
33
- # def cachetastic_key
34
- # self.name
35
- # end
36
32
  # end
37
33
  #
38
34
  # Person.cache_class # => Cachetastic::Cacheable::PersonCache
35
+ #
36
+ # class Admin::Person
37
+ # include Cachetastic::Cacheable
38
+ # end
39
+ #
40
+ # Admin::Person.cache_class # => Cachetastic::Cacheable::Admin_PersonCache
39
41
  def cache_class
40
42
  n = self.class.name
41
43
  n = self.name if n == "Class"
42
- n.gsub!('::', '_')
43
- c_name = "Cachetastic::Cacheable::#{n}Cache"
44
+ c_name = "Cachetastic::Cacheable::#{n.gsub('::', '_')}Cache"
44
45
  begin
45
46
  return c_name.constantize
46
47
  rescue NameError => e
47
48
  eval %{
48
- class #{c_name} < Cachetastic::Caches::Base
49
+ class #{c_name} < Cachetastic::Cache
50
+
51
+ def self.cache_klass
52
+ #{n}
53
+ end
54
+
49
55
  end
50
56
  }
51
57
  return c_name.constantize
@@ -62,10 +68,7 @@ module Cachetastic
62
68
  # Example:
63
69
  # class Person
64
70
  # include Cachetastic::Cacheable
65
- # attr_accessor :name
66
- # def cachetastic_key
67
- # self.name
68
- # end
71
+ #
69
72
  # def always_the_same(x,y)
70
73
  # cacher("always_the_same") do
71
74
  # x + y
@@ -83,7 +86,7 @@ module Cachetastic
83
86
  # Person.cacher("say_hi") {"Hi There"} # => "Hi There"
84
87
  # Person.get_from_cache("say_hi") # => "Hi There"
85
88
  # Cachetastic::Cacheable::PersonCache.get("say_hi") # => "Hi There"
86
- def cacher(key, expiry = 0)
89
+ def cacher(key, expiry = nil)
87
90
  cache_class.get(key) do
88
91
  if block_given?
89
92
  res = yield
@@ -114,6 +117,7 @@ module Cachetastic
114
117
  def expire_all
115
118
  cache_class.expire_all
116
119
  end
120
+
117
121
  end
118
122
 
119
123
  # --------------------------
@@ -0,0 +1,8 @@
1
+ require 'digest'
2
+ class String # :nodoc:
3
+
4
+ def hexdigest # :nodoc:
5
+ Digest::SHA1.hexdigest(self)
6
+ end
7
+
8
+ end
@@ -1,49 +1,49 @@
1
- # This class handles logging for the caches and their adapters.
2
- class Cachetastic::Logger
1
+ module Cachetastic # :nodoc:
2
+ # This class handles logging for the caches and their adapters.
3
+ # This class exists simply to supply the ability to write to
4
+ # multiple loggers simultaneously from a single call. It also
5
+ # creates a standardized message to write to those loggers.
6
+ #
7
+ # It is important that any logger type of class you decide to use
8
+ # reponds to the following methods:
9
+ # fatal(message)
10
+ # error(message)
11
+ # warn(message)
12
+ # info(message)
13
+ # debug(message)
14
+ class Logger
3
15
 
4
- # attr_accessor :options
5
- # attr_accessor :cache_name
6
- attr_accessor :loggers
16
+ # An <tt>Array</tt> of 'real' loggers to write to.
17
+ attr_accessor :loggers
7
18
 
8
- def initialize(loggers)
9
- @loggers = [loggers].flatten
10
- # self.options = options
11
- # self.cache_name = cache_name
12
- # self.options.each_pair do |n, opts|
13
- # opts["level"] = (opts["level"] ||= "info").to_sym
14
- # end
15
- end
19
+ # The <tt>initialize</tt> method takes an <tt>Array</tt>
20
+ # of your favorite logger style classes to write to.
21
+ def initialize(*loggers)
22
+ @loggers = [loggers].flatten
23
+ end
16
24
 
17
- LOG_LEVELS = [:fatal, :error, :warn, :info, :debug]
25
+ LOG_LEVELS = [:fatal, :error, :warn, :info, :debug] # :nodoc:
18
26
 
19
- LOG_LEVELS.each do |level|
20
- define_method(level) do |*args|
21
- lm = "[CACHE] [#{level.to_s.upcase}]\t#{Time.now.strftime("%m/%d/%y %H:%M:%S")}"
22
- exs = []
23
- args.each do |arg|
24
- if arg.is_a?(Exception)
25
- exs << arg
26
- continue
27
+ LOG_LEVELS.each do |level|
28
+ define_method(level) do |*args|
29
+ lm = "[CACHE] [#{level.to_s.upcase}]\t#{Time.now.strftime("%m/%d/%y %H:%M:%S")}"
30
+ exs = []
31
+ args.each do |arg|
32
+ if arg.is_a?(Exception)
33
+ exs << arg
34
+ continue
35
+ end
36
+ lm << "\t" << arg.to_s
37
+ end
38
+ exs.each do |ex|
39
+ lm << "\n#{ex.message}\n" << ex.backtrace.join("\n")
40
+ end
41
+ # puts "lm: #{lm}"
42
+ self.loggers.each do |log|
43
+ log.send(level, lm)
27
44
  end
28
- lm << "\t" << arg.to_s
29
- end
30
- exs.each do |ex|
31
- lm << "\n#{ex.message}\n" << ex.backtrace.join("\n")
32
- end
33
- self.loggers.each do |log|
34
- log.send(level, lm)
35
45
  end
36
- # self.options.each_pair do |n, opts|
37
- # if LOG_LEVELS.index(opts["level"]) >= LOG_LEVELS.index(level)
38
- # case opts["type"]
39
- # when "file"
40
- # File.open(opts["file"], "a") {|f| f.puts(lm)}
41
- # when "console"
42
- # puts lm
43
- # end
44
- # end
45
- # end
46
46
  end
47
- end
48
47
 
49
- end
48
+ end # Logger
49
+ end # Cachetastic
@@ -0,0 +1,22 @@
1
+ module Cachetastic # :nodoc:
2
+ class Cache
3
+
4
+ class StoreObject # :nodoc:
5
+ attr_accessor :expires_at
6
+ attr_accessor :key
7
+ attr_accessor :value
8
+
9
+ def initialize(key, value, expires_at)
10
+ self.key = key
11
+ self.value = value
12
+ self.expires_at = expires_at
13
+ end
14
+
15
+ def expired?
16
+ return Time.now > self.expires_at
17
+ end
18
+
19
+ end # StoreObject
20
+
21
+ end # Cache
22
+ end # Cachetastic
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cachetastic
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.4
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
- - markbates
7
+ - Mark Bates
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-02-27 00:00:00 -05:00
12
+ date: 2009-06-11 00:00:00 -04:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -20,85 +20,72 @@ dependencies:
20
20
  requirements:
21
21
  - - ">="
22
22
  - !ruby/object:Gem::Version
23
- version: 2.2.2
23
+ version: 2.3.2
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: memcache-client
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 1.7.4
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: activesupport
37
+ type: :runtime
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 2.3.2
24
44
  version:
25
45
  description: A very simple, yet very powerful caching framework for Ruby.
26
46
  email: mark@mackframework.com
27
- executables:
28
- - cachetastic_drb_server
47
+ executables: []
48
+
29
49
  extensions: []
30
50
 
31
51
  extra_rdoc_files:
32
52
  - README
53
+ - LICENSE
33
54
  files:
34
55
  - lib/cachetastic/adapters/base.rb
35
- - lib/cachetastic/adapters/drb.rb
36
56
  - lib/cachetastic/adapters/file.rb
37
- - lib/cachetastic/adapters/file_base.rb
38
- - lib/cachetastic/adapters/html_file.rb
39
57
  - lib/cachetastic/adapters/local_memory.rb
40
- - lib/cachetastic/adapters/memcache.rb
41
- - lib/cachetastic/adapters/store_object.rb
58
+ - lib/cachetastic/adapters/memcached.rb
59
+ - lib/cachetastic/cache.rb
42
60
  - lib/cachetastic/cacheable.rb
43
- - lib/cachetastic/caches/base.rb
44
- - lib/cachetastic/caches/mack_session_cache.rb
45
- - lib/cachetastic/caches/page_cache.rb
46
- - lib/cachetastic/caches/rails_session_cache.rb
47
- - lib/cachetastic/connection.rb
48
- - lib/cachetastic/errors/unsupported_adapter.rb
61
+ - lib/cachetastic/extensions/string.rb
49
62
  - lib/cachetastic/logger.rb
50
- - lib/cachetastic/rails_extensions/active_record_base.rb
51
- - lib/cachetastic/rails_extensions/cgi_session_store.rb
52
- - lib/cachetastic/ruby_extensions/kernel.rb
53
- - lib/cachetastic/ruby_extensions/object.rb
54
- - lib/cachetastic/ruby_extensions/string.rb
63
+ - lib/cachetastic/store_object.rb
55
64
  - lib/cachetastic.rb
56
65
  - README
57
- - doc/classes/ActiveRecord/Base.html
66
+ - LICENSE
58
67
  - doc/classes/Cachetastic/Adapters/Base.html
59
- - doc/classes/Cachetastic/Adapters/Drb.html
60
68
  - doc/classes/Cachetastic/Adapters/File.html
61
- - doc/classes/Cachetastic/Adapters/FileBase.html
62
- - doc/classes/Cachetastic/Adapters/HtmlFile.html
63
69
  - doc/classes/Cachetastic/Adapters/LocalMemory.html
64
- - doc/classes/Cachetastic/Adapters/Memcache.html
70
+ - doc/classes/Cachetastic/Adapters/Memcached.html
71
+ - doc/classes/Cachetastic/Adapters.html
72
+ - doc/classes/Cachetastic/Cache.html
65
73
  - doc/classes/Cachetastic/Cacheable/ClassAndInstanceMethods.html
66
74
  - doc/classes/Cachetastic/Cacheable/ClassOnlyMethods.html
67
75
  - doc/classes/Cachetastic/Cacheable.html
68
- - doc/classes/Cachetastic/Caches/Base/RegisteredCaches.html
69
- - doc/classes/Cachetastic/Caches/Base.html
70
- - doc/classes/Cachetastic/Caches/MackSessionCache.html
71
- - doc/classes/Cachetastic/Caches/PageCache.html
72
- - doc/classes/Cachetastic/Caches/RailsSessionCache.html
73
- - doc/classes/Cachetastic/Connection.html
74
- - doc/classes/Cachetastic/Errors/UnsupportedAdapter.html
75
76
  - doc/classes/Cachetastic/Logger.html
76
- - doc/classes/CGI/Session/CachetasticStore.html
77
- - doc/classes/Object.html
78
- - doc/classes/String.html
79
77
  - doc/created.rid
80
78
  - doc/files/lib/cachetastic/adapters/base_rb.html
81
- - doc/files/lib/cachetastic/adapters/drb_rb.html
82
- - doc/files/lib/cachetastic/adapters/file_base_rb.html
83
79
  - doc/files/lib/cachetastic/adapters/file_rb.html
84
- - doc/files/lib/cachetastic/adapters/html_file_rb.html
85
80
  - doc/files/lib/cachetastic/adapters/local_memory_rb.html
86
- - doc/files/lib/cachetastic/adapters/memcache_rb.html
87
- - doc/files/lib/cachetastic/adapters/store_object_rb.html
81
+ - doc/files/lib/cachetastic/adapters/memcached_rb.html
82
+ - doc/files/lib/cachetastic/cache_rb.html
88
83
  - doc/files/lib/cachetastic/cacheable_rb.html
89
- - doc/files/lib/cachetastic/caches/base_rb.html
90
- - doc/files/lib/cachetastic/caches/mack_session_cache_rb.html
91
- - doc/files/lib/cachetastic/caches/page_cache_rb.html
92
- - doc/files/lib/cachetastic/caches/rails_session_cache_rb.html
93
- - doc/files/lib/cachetastic/connection_rb.html
94
- - doc/files/lib/cachetastic/errors/unsupported_adapter_rb.html
84
+ - doc/files/lib/cachetastic/extensions/string_rb.html
95
85
  - doc/files/lib/cachetastic/logger_rb.html
96
- - doc/files/lib/cachetastic/rails_extensions/active_record_base_rb.html
97
- - doc/files/lib/cachetastic/rails_extensions/cgi_session_store_rb.html
98
- - doc/files/lib/cachetastic/ruby_extensions/kernel_rb.html
99
- - doc/files/lib/cachetastic/ruby_extensions/object_rb.html
100
- - doc/files/lib/cachetastic/ruby_extensions/string_rb.html
86
+ - doc/files/lib/cachetastic/store_object_rb.html
101
87
  - doc/files/lib/cachetastic_rb.html
88
+ - doc/files/LICENSE.html
102
89
  - doc/files/README.html
103
90
  - doc/fr_class_index.html
104
91
  - doc/fr_file_index.html
@@ -106,13 +93,12 @@ files:
106
93
  - doc/index.html
107
94
  - doc/rdoc-style.css
108
95
  has_rdoc: true
109
- homepage: http://www.mackframework.com
96
+ homepage: http://www.metabates.com
110
97
  post_install_message:
111
98
  rdoc_options: []
112
99
 
113
100
  require_paths:
114
101
  - lib
115
- - lib
116
102
  required_ruby_version: !ruby/object:Gem::Requirement
117
103
  requirements:
118
104
  - - ">="
@@ -132,12 +118,5 @@ rubygems_version: 1.3.1
132
118
  signing_key:
133
119
  specification_version: 2
134
120
  summary: A very simple, yet very powerful caching framework for Ruby.
135
- test_files:
136
- - test/active_record_test.rb
137
- - test/cacheable_test.rb
138
- - test/cachetastic_unit_test.rb
139
- - test/config.rb
140
- - test/drb_adapter_test.rb
141
- - test/file_adapter_test.rb
142
- - test/memcache_adapter_test.rb
143
- - test/test_helper.rb
121
+ test_files: []
122
+
@@ -1,115 +0,0 @@
1
- #!/usr/local/bin/ruby
2
- require 'thread'
3
- require 'drb'
4
- require 'singleton'
5
- require 'optparse'
6
- require 'optparse/time'
7
- require 'ostruct'
8
-
9
- # require the necessary gems:
10
- require 'rubygems'
11
- gem 'mack-facets'
12
- require 'mack-facets'
13
- gem 'configatron'
14
- require 'configatron'
15
- gem 'cachetastic'
16
- require 'cachetastic'
17
-
18
- $SAFE = 1
19
-
20
- SERVER_OPTIONS = OpenStruct.new
21
- SERVER_OPTIONS.host = "127.0.0.1"
22
- SERVER_OPTIONS.port = "61676"
23
- SERVER_OPTIONS.config_file = nil
24
- SERVER_OPTIONS.verbose = false
25
- SERVER_OPTIONS.really_verbose = false
26
-
27
- opts = OptionParser.new do |opts|
28
-
29
- opts.on("-h [HOST]") do |v|
30
- SERVER_OPTIONS.host = v
31
- end
32
-
33
- opts.on("-p [PORT]", Integer) do |v|
34
- SERVER_OPTIONS.port = v
35
- end
36
-
37
- opts.on("-c [CONFIG_FILE]") do |v|
38
- SERVER_OPTIONS.config_file = v
39
- end
40
-
41
- opts.on("-v") do |v|
42
- SERVER_OPTIONS.verbose = true
43
- end
44
-
45
- opts.on("-rv") do |v|
46
- SERVER_OPTIONS.verbose = true
47
- SERVER_OPTIONS.really_verbose = true
48
- end
49
-
50
- end
51
-
52
- opts.parse!(ARGV)
53
-
54
- if SERVER_OPTIONS.config_file
55
- configatron.configure_from_yaml(SERVER_OPTIONS.config_file)
56
- end
57
-
58
- module Cachetastic
59
- module Drb
60
- class Server
61
- include Singleton
62
-
63
- def initialize
64
- DRb.start_service("druby://#{SERVER_OPTIONS.host}:#{SERVER_OPTIONS.port}", self)
65
- puts "Cachetastic::Drb::Server listening for connection..."
66
- DRb.thread.join
67
- end # initialize
68
-
69
- def get(ns, key)
70
- puts "get: #{ns}.#{key}" if SERVER_OPTIONS.verbose
71
- puts cache_for_namespace(ns).inspect if SERVER_OPTIONS.really_verbose
72
- value = cache_for_namespace(ns).get(key)
73
- puts "\tvalue.class: #{value.class}" if SERVER_OPTIONS.verbose
74
- value
75
- end
76
-
77
- def set(ns, key, value, expiry = 0)
78
- puts "set: #{ns}.#{key}: #{value}" if SERVER_OPTIONS.verbose
79
- cache_for_namespace(ns).set(key, value)
80
- puts cache_for_namespace(ns).inspect if SERVER_OPTIONS.really_verbose
81
- value
82
- end
83
-
84
- def delete(ns, key, delay = 0)
85
- puts "delete: #{ns}.#{key}" if SERVER_OPTIONS.verbose
86
- cache_for_namespace(ns).delete(key, delay = 0)
87
- puts cache_for_namespace(ns).inspect if SERVER_OPTIONS.really_verbose
88
- end
89
-
90
- def expire_all(ns)
91
- puts "expire_all: #{ns}" if SERVER_OPTIONS.verbose
92
- instance_variable_set("@store_for_#{ns}", Cachetastic::Adapters::LocalMemory.new("store_for_#{ns}"))
93
- end
94
-
95
- def ping
96
- true
97
- end
98
-
99
- private
100
- def cache_for_namespace(ns)
101
- # puts "@store_for_#{ns}"
102
- c = instance_variable_get("@store_for_#{ns}")
103
- if c.nil?
104
- instance_variable_set("@store_for_#{ns}", Cachetastic::Adapters::LocalMemory.new("store_for_#{ns}"))
105
- c = instance_variable_get("@store_for_#{ns}")
106
- end
107
- c
108
- end
109
-
110
- end # Server
111
- end # Drb
112
- end # Cachetastic
113
-
114
- # let's start `er up!
115
- Cachetastic::Drb::Server.instance