cachy 0.1.2 → 0.1.3

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/README.markdown CHANGED
@@ -1,11 +1,11 @@
1
1
  Caching library to simplify and organize caching.
2
2
 
3
3
  - I18n (seperate caches by locale / expires all locales)
4
- - Generation based (expire all caches of one type)
5
- - Simultanouse caching (multiple processes trying to write same cache at once)
4
+ - Generation based (your able expire all caches of one type)
5
+ - Simultanouse caching (handle multiple processes trying to write same expensive cache at once)
6
6
  - Dependent caches (x caches result of cache z+y -> z changes -> x changes)
7
7
  - Hashed keys (optional -> short/unreadable)
8
- - Global cache_version (expire everything Cachy cached)
8
+ - Global cache_version (expire everything Cachy cached, but not e.g. sessions)
9
9
  - ...
10
10
  - works out of the box with Rails
11
11
  - works with pure Memcache and [Moneta](http://github.com/wycats/moneta/tree/master)(-> Tokyo Cabinet / CouchDB / S3 / Berkeley DB / DataMapper / Memory store)
@@ -15,7 +15,6 @@ Install
15
15
  As Gem: ` sudo gem install cachy `
16
16
  Or as Rails plugin: ` script/plugins install git://github.com/grosser/cachy.git `
17
17
 
18
-
19
18
  Usage
20
19
  =====
21
20
  ###Cachy.cache
@@ -24,14 +23,14 @@ Usage
24
23
  result = Cachy.cache(:a_key, 'something else', Date.today.day){ expensive() }
25
24
 
26
25
  ####Cache expensive operation that is run many times by many processes
27
- Example scenario: at application Startup 20 processes try to set the same cache -> 20 heavy database requests -> database timeout -> cache still empty -> ... -> death
26
+ Example: at application startup 20 processes try to set the same cache -> 20 heavy database requests -> database timeout -> cache still empty -> ... -> death
28
27
 
29
28
  # 19 Processes get [], 1 makes the request -- when cached all get the same result
30
29
  result = Cachy.cache(:a_key, :while_running=>[]){ block_db_for_5_seconds }
31
30
 
32
31
 
33
32
  ####Seperate version for each key
34
- Expire all all caches of one kind when e.g. codebase has been updated
33
+ Expire all all caches of one kind when code inside the cache has been updated
35
34
 
36
35
  100.times{ Cachy.cache(:a_key, rand(100000) ){ expensive() } }
37
36
  Cachy.increment_key(:a_key) --> everything expired
@@ -107,7 +106,7 @@ No I18n.available_locales ?
107
106
 
108
107
  TODO
109
108
  ====
110
- - optionally store dependent keys (:keys=>xxx), so that they can be setup up once and dont need to be remembered
109
+ - optionally store dependent keys (:keys=>xxx), so that they can be setup up once and do not need to be remembered
111
110
 
112
111
  Authors
113
112
  =======
data/Rakefile CHANGED
@@ -1,10 +1,6 @@
1
- desc "Run all specs in spec directory"
2
- task :default do
3
- options = "--colour --format progress --loadby --reverse"
4
- files = FileList['spec/**/*_spec.rb']
5
- system("spec #{options} #{files}")
6
- end
7
-
1
+ task :default => :spec
2
+ require 'spec/rake/spectask'
3
+ Spec::Rake::SpecTask.new {|t| t.spec_opts = ['--color']}
8
4
 
9
5
  begin
10
6
  require 'jeweler'
@@ -15,16 +11,9 @@ begin
15
11
  gem.email = "grosser.michael@gmail.com"
16
12
  gem.homepage = "http://github.com/grosser/#{project_name}"
17
13
  gem.authors = ["Michael Grosser"]
18
- gem.rubyforge_project = project_name
19
- end
20
-
21
- # fake task so that rubyforge:release works
22
- task :rdoc do
23
- `mkdir rdoc`
24
- `echo documentation is at http://github.com/grosser/#{project_name} > rdoc/README.rdoc`
25
14
  end
26
15
 
27
- Jeweler::RubyforgeTasks.new
16
+ Jeweler::GemcutterTasks.new
28
17
  rescue LoadError
29
18
  puts "Jeweler, or one of its dependencies, is not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
30
19
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.2
1
+ 0.1.3
data/cachy.gemspec CHANGED
@@ -1,15 +1,15 @@
1
1
  # Generated by jeweler
2
- # DO NOT EDIT THIS FILE
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{cachy}
8
- s.version = "0.1.2"
8
+ s.version = "0.1.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Michael Grosser"]
12
- s.date = %q{2009-10-16}
12
+ s.date = %q{2009-11-22}
13
13
  s.email = %q{grosser.michael@gmail.com}
14
14
  s.extra_rdoc_files = [
15
15
  "README.markdown"
@@ -23,6 +23,7 @@ Gem::Specification.new do |s|
23
23
  "lib/cachy/memcached_wrapper.rb",
24
24
  "lib/cachy/moneta_wrapper.rb",
25
25
  "lib/cachy/wrapper.rb",
26
+ "rdoc/README.rdoc",
26
27
  "spec/cachy/memcached_wrapper_spec.rb",
27
28
  "spec/cachy/moneta_wrapper_spec.rb",
28
29
  "spec/cachy_spec.rb",
@@ -32,14 +33,13 @@ Gem::Specification.new do |s|
32
33
  s.homepage = %q{http://github.com/grosser/cachy}
33
34
  s.rdoc_options = ["--charset=UTF-8"]
34
35
  s.require_paths = ["lib"]
35
- s.rubyforge_project = %q{cachy}
36
36
  s.rubygems_version = %q{1.3.5}
37
37
  s.summary = %q{Caching library for projects that have many processes or many caches}
38
38
  s.test_files = [
39
- "spec/test_cache.rb",
39
+ "spec/spec_helper.rb",
40
+ "spec/test_cache.rb",
40
41
  "spec/cachy/memcached_wrapper_spec.rb",
41
42
  "spec/cachy/moneta_wrapper_spec.rb",
42
- "spec/spec_helper.rb",
43
43
  "spec/cachy_spec.rb"
44
44
  ]
45
45
 
@@ -53,3 +53,4 @@ Gem::Specification.new do |s|
53
53
  else
54
54
  end
55
55
  end
56
+
data/lib/cachy.rb CHANGED
@@ -119,14 +119,18 @@ class Cachy
119
119
  self.cache_store = ActionController::Base.cache_store if defined? ActionController::Base
120
120
 
121
121
  # locales
122
- class << self
123
- attr_accessor :locales
122
+ @@locales = nil
123
+ def self.locales=(x)
124
+ @@locales = x
124
125
  end
125
126
 
126
- self.locales = if defined?(I18n) and I18n.respond_to?(:available_locales)
127
- I18n.available_locales
128
- else
129
- []
127
+ def self.locales
128
+ return @@locales if @@locales
129
+ if defined?(I18n) and I18n.respond_to?(:available_locales)
130
+ I18n.available_locales
131
+ else
132
+ []
133
+ end
130
134
  end
131
135
 
132
136
  private
data/rdoc/README.rdoc ADDED
@@ -0,0 +1 @@
1
+ documentation is at http://github.com/grosser/cachy
data/spec/spec_helper.rb CHANGED
@@ -1,5 +1,4 @@
1
- # ---- requirements
1
+ require 'rubygems'
2
2
  require 'spec/test_cache'
3
- $LOAD_PATH << File.expand_path("../lib", File.dirname(__FILE__))
4
-
3
+ $LOAD_PATH << 'lib'
5
4
  require 'cachy'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cachy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Grosser
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-10-16 00:00:00 +02:00
12
+ date: 2009-11-22 00:00:00 +01:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -30,6 +30,7 @@ files:
30
30
  - lib/cachy/memcached_wrapper.rb
31
31
  - lib/cachy/moneta_wrapper.rb
32
32
  - lib/cachy/wrapper.rb
33
+ - rdoc/README.rdoc
33
34
  - spec/cachy/memcached_wrapper_spec.rb
34
35
  - spec/cachy/moneta_wrapper_spec.rb
35
36
  - spec/cachy_spec.rb
@@ -58,14 +59,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
58
59
  version:
59
60
  requirements: []
60
61
 
61
- rubyforge_project: cachy
62
+ rubyforge_project:
62
63
  rubygems_version: 1.3.5
63
64
  signing_key:
64
65
  specification_version: 3
65
66
  summary: Caching library for projects that have many processes or many caches
66
67
  test_files:
68
+ - spec/spec_helper.rb
67
69
  - spec/test_cache.rb
68
70
  - spec/cachy/memcached_wrapper_spec.rb
69
71
  - spec/cachy/moneta_wrapper_spec.rb
70
- - spec/spec_helper.rb
71
72
  - spec/cachy_spec.rb