cache_fu 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
data/README CHANGED
@@ -3,6 +3,9 @@
3
3
  A rewrite of acts_as_cached.
4
4
  This version is only compatible with rails 3 and above.
5
5
 
6
+ For fragment and page caching use Rails inbuilt MemCacheStore as it already provides all the functionality.
7
+ This gem is very useful for caching in models.
8
+
6
9
  == Changes from acts_as_cached 1
7
10
 
8
11
  - You can no longer set a 'ttl' method on a class. Instead,
@@ -7,8 +7,6 @@ defaults:
7
7
  debug: false
8
8
  namespace: app
9
9
  sessions: false
10
- session_servers: false
11
- fragments: false
12
10
  memory: 64
13
11
  servers: localhost:11211
14
12
  benchmarking: true
@@ -22,7 +20,7 @@ development:
22
20
  servers: localhost:11211
23
21
 
24
22
  # turn off caching
25
- test:
23
+ test:
26
24
  disabled: true
27
25
 
28
26
  production:
data/lib/cache_fu.rb CHANGED
@@ -1,9 +1,7 @@
1
1
  require File.dirname(__FILE__) + '/acts_as_cached/config'
2
2
  require File.dirname(__FILE__) + '/acts_as_cached/cache_methods'
3
- require File.dirname(__FILE__) + '/acts_as_cached/fragment_cache'
4
3
  require File.dirname(__FILE__) + '/acts_as_cached/benchmarking'
5
4
  require File.dirname(__FILE__) + '/acts_as_cached/disabled'
6
- require File.dirname(__FILE__) + '/acts_as_cached/local_cache'
7
5
  require File.dirname(__FILE__) + '/acts_as_cached/railtie' if defined?(Rails::Railtie)
8
6
 
9
7
  module ActsAsCached
metadata CHANGED
@@ -1,13 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cache_fu
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 1
9
- - 3
10
- version: 0.1.3
4
+ prerelease:
5
+ version: 0.1.4
11
6
  platform: ruby
12
7
  authors:
13
8
  - Surendra Singhi
@@ -15,7 +10,7 @@ autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
12
 
18
- date: 2011-05-24 00:00:00 +05:30
13
+ date: 2011-06-14 00:00:00 +05:30
19
14
  default_executable:
20
15
  dependencies:
21
16
  - !ruby/object:Gem::Dependency
@@ -26,10 +21,6 @@ dependencies:
26
21
  requirements:
27
22
  - - ~>
28
23
  - !ruby/object:Gem::Version
29
- hash: 7
30
- segments:
31
- - 3
32
- - 0
33
24
  version: "3.0"
34
25
  type: :runtime
35
26
  version_requirements: *id001
@@ -41,10 +32,6 @@ dependencies:
41
32
  requirements:
42
33
  - - ~>
43
34
  - !ruby/object:Gem::Version
44
- hash: 7
45
- segments:
46
- - 3
47
- - 0
48
35
  version: "3.0"
49
36
  type: :development
50
37
  version_requirements: *id002
@@ -62,8 +49,6 @@ files:
62
49
  - lib/acts_as_cached/cache_methods.rb
63
50
  - lib/acts_as_cached/config.rb
64
51
  - lib/acts_as_cached/disabled.rb
65
- - lib/acts_as_cached/fragment_cache.rb
66
- - lib/acts_as_cached/local_cache.rb
67
52
  - lib/acts_as_cached/railtie.rb
68
53
  - lib/acts_as_cached/recipes.rb
69
54
  - lib/cache_fu.rb
@@ -97,23 +82,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
97
82
  requirements:
98
83
  - - ">="
99
84
  - !ruby/object:Gem::Version
100
- hash: 3
101
- segments:
102
- - 0
103
85
  version: "0"
104
86
  required_rubygems_version: !ruby/object:Gem::Requirement
105
87
  none: false
106
88
  requirements:
107
89
  - - ">="
108
90
  - !ruby/object:Gem::Version
109
- hash: 3
110
- segments:
111
- - 0
112
91
  version: "0"
113
92
  requirements: []
114
93
 
115
94
  rubyforge_project:
116
- rubygems_version: 1.3.7
95
+ rubygems_version: 1.6.2
117
96
  signing_key:
118
97
  specification_version: 3
119
98
  summary: Makes caching easy for ActiveRecord models
@@ -1,102 +0,0 @@
1
- module ActsAsCached
2
- module FragmentCache
3
- def self.setup!
4
- class << CACHE
5
- include Extensions
6
- end
7
-
8
- setup_fragment_cache_cache
9
- setup_rails_for_memcache_fragments
10
- setup_rails_for_action_cache_options
11
- end
12
-
13
- # add :ttl option to cache helper and set cache store memcache object
14
- def self.setup_rails_for_memcache_fragments
15
- ::ActionController::Base.cache_store = CACHE
16
- end
17
-
18
- def self.setup_fragment_cache_cache
19
- Object.const_set(:FragmentCacheCache, Class.new { acts_as_cached :store => CACHE })
20
- end
21
-
22
- # add :ttl option to caches_action on the per action level by passing in a hash instead of an array
23
- #
24
- # Examples:
25
- # caches_action :index # will use the default ttl from your memcache.yml, or 25 minutes
26
- # caches_action :index => { :ttl => 5.minutes } # cache index action with 5 minute ttl
27
- # caches_action :page, :feed, :index => { :ttl => 2.hours } # cache index action with 2 hours ttl, all others use default
28
- #
29
- def self.setup_rails_for_action_cache_options
30
- ::ActionController::Caching::Actions::ActionCacheFilter.class_eval do
31
- # convert all actions into a hash keyed by action named, with a value of a ttl hash (to match other cache APIs)
32
- def initialize(*actions, &block)
33
- @options = actions.extract_options!
34
- @actions = actions.inject(@options.except(:cache_path)) do |hsh, action|
35
- action.is_a?(Hash) ? hsh.merge(action) : hsh.merge(action => { :ttl => nil })
36
- end
37
- @options.slice!(:cache_path)
38
- end
39
-
40
- # override to skip caching/rendering on evaluated if option
41
- def before(controller)
42
- return unless @actions.include?(controller.action_name.intern)
43
-
44
- if @options
45
- action_cache_path = ActionController::Caching::Actions::ActionCachePath.new(controller, path_options_for(controller, @options))
46
- end
47
-
48
- # should probably be like ActiveRecord::Validations.evaluate_condition. color me lazy.
49
- if conditional = @actions[controller.action_name.intern][:if]
50
- conditional = conditional.respond_to?(:call) ? conditional.call(controller) : controller.send(conditional)
51
- end
52
- @actions.delete(controller.action_name.intern) if conditional == false
53
-
54
- cache = controller.read_fragment(action_cache_path.path)
55
- if cache && (conditional || conditional.nil?)
56
- controller.rendered_action_cache = true
57
- if method(:set_content_type!).arity == 2
58
- set_content_type!(controller, action_cache_path.extension)
59
- else
60
- set_content_type!(action_cache_path)
61
- end
62
- controller.send(:render, :text => cache)
63
- false
64
- else
65
- # 1.2.x compatibility
66
- controller.action_cache_path = action_cache_path if controller.respond_to? :action_cache_path
67
- end
68
- end
69
-
70
- # override to pass along the ttl hash
71
- def after(controller)
72
- return if !@actions.include?(controller.action_name.intern) || controller.rendered_action_cache
73
- # 1.2.x compatibility
74
- path = controller.respond_to?(:action_cache_path) ? controller.action_cache_path.path : ActionController::Caching::Actions::ActionCachePath.path_for(controller)
75
- controller.write_fragment(path, controller.response.body, action_ttl(controller))
76
- end
77
-
78
- private
79
- def action_ttl(controller)
80
- @actions[controller.action_name.intern]
81
- end
82
- end
83
- end
84
-
85
- module Extensions
86
- def read(*args)
87
- return if ActsAsCached.config[:skip_gets]
88
- FragmentCacheCache.cache_store(:get, args.first)
89
- end
90
-
91
- def write(name, content, options = {})
92
- ttl = (options.is_a?(Hash) ? options[:ttl] : nil) || ActsAsCached.config[:ttl] || 25.minutes
93
- FragmentCacheCache.cache_store(:set, name, content, ttl)
94
- end
95
- end
96
-
97
- module DisabledExtensions
98
- def read(*args) nil end
99
- def write(*args) "" end
100
- end
101
- end
102
- end
@@ -1,44 +0,0 @@
1
- module ActsAsCached
2
- module LocalCache
3
- @@local_cache = {}
4
- mattr_accessor :local_cache
5
-
6
- def fetch_cache_with_local_cache(*args)
7
- @@local_cache[cache_key(args.first)] ||= fetch_cache_without_local_cache(*args)
8
- end
9
-
10
- def set_cache_with_local_cache(*args)
11
- @@local_cache[cache_key(args.first)] = set_cache_without_local_cache(*args)
12
- end
13
-
14
- def expire_cache_with_local_cache(*args)
15
- @@local_cache.delete(cache_key(args.first))
16
- expire_cache_without_local_cache(*args)
17
- end
18
- alias :clear_cache_with_local_cache :expire_cache_with_local_cache
19
-
20
- def cached_with_local_cache?(*args)
21
- !!@@local_cache[cache_key(args.first)] || cached_without_local_cache?(*args)
22
- end
23
-
24
- def self.add_to(klass)
25
- return if klass.ancestors.include? self
26
- klass.send :include, self
27
-
28
- klass.class_eval do
29
- %w( fetch_cache set_cache expire_cache clear_cache cached? ).each do |target|
30
- alias_method_chain target, :local_cache
31
- end
32
- end
33
- end
34
- end
35
- end
36
-
37
- module ActionController
38
- class Base
39
- def local_cache_for_request
40
- ActsAsCached::LocalCache.add_to ActsAsCached::ClassMethods
41
- ActsAsCached::LocalCache.local_cache = {}
42
- end
43
- end
44
- end