module TDiary::Cache
Public Instance Methods
clear_cache(target = :all)
click to toggle source
# File lib/tdiary/cache/memcached.rb, line 17 def clear_cache(target = :all) if target == :all delete_data(:all) else ym = target.to_s.scan(/\d{4}\d{2}/)[0] ['latest.rb', 'i.latest.rb', "#{ym}.rb", "i.#{ym}.rb"].each do |key| delete_data(key) end end end
restore_cache(prefix)
click to toggle source
# File lib/tdiary/cache/memcached.rb, line 5 def restore_cache(prefix) if key = cache_key(prefix) restore_data(key) end end
store_cache(cache, prefix)
click to toggle source
# File lib/tdiary/cache/memcached.rb, line 11 def store_cache(cache, prefix) if key = cache_key(prefix) store_data(cache, key) end end
Private Instance Methods
cache_key(prefix)
click to toggle source
# File lib/tdiary/cache/memcached.rb, line 58 def cache_key(prefix) if @tdiary.is_a?(TDiaryMonth) "#{prefix}#{@tdiary.rhtml.sub( /month/, @tdiary.date.strftime( '%Y%m' ) ).sub( /\.rhtml$/, '.rb' )}" elsif @tdiary.is_a?(TDiaryLatest) if @tdiary.cgi.params['date'][0] nil else "#{prefix}#{@tdiary.rhtml.sub( /\.rhtml$/, '.rb' )}" end else nil end end
clear_parser_cache(*args)
click to toggle source
# File lib/tdiary/cache/memcached.rb, line 54 def clear_parser_cache(*args) delete_data(:all) end
delete_data(key)
click to toggle source
# File lib/tdiary/cache/memcached.rb, line 38 def delete_data(key) if key == :all memcache.flush else memcache.delete(key) end end
memcache()
click to toggle source
# File lib/tdiary/cache/memcached.rb, line 72 def memcache options = {} if @tdiary.conf.user_name options.merge!({:namespace => @tdiary.conf.user_name}) end @_client ||= Dalli::Client.new(nil, options) end
restore_data(key)
click to toggle source
# File lib/tdiary/cache/memcached.rb, line 30 def restore_data(key) memcache.get(key) end
restore_parser_cache(date, key = nil)
click to toggle source
# File lib/tdiary/cache/memcached.rb, line 46 def restore_parser_cache(date, key = nil) restore_data(date.strftime("%Y%m.parser")) end
store_data(data, key)
click to toggle source
# File lib/tdiary/cache/memcached.rb, line 34 def store_data(data, key) memcache.set(key, data) end
store_parser_cache(date, obj, key = nil)
click to toggle source
# File lib/tdiary/cache/memcached.rb, line 50 def store_parser_cache(date, obj, key = nil) store_data(obj, date.strftime("%Y%m.parser")) end