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