DBIx::Skinny::Cache

というのをつくりました。

http://github.com/nekokak/p5-dbix-skinny-cache

package Mock::Basic;
use DBIx::Skinny setup => +{
    dsn => 'dbi:SQLite:',
    username => '', 
    password => '', 
    connect_options => { AutoCommit => 1 },
};
use DBIx::Skinny::Mixin modules => ['Cache::Memory'];

# in your script:
use Mock::Basic;
# set data
Mock::Basic->memory_cache->param(foo => 'bar');
# get data
Mock::Basic->memory_cache->param('foo'); # get bar 
# delete data
Mock::Basic->memory_cache->delete('foo');
# get_callback
Mock::Basic->memory_cache->get_callback(
    foo => sub {
        # some process.....
        'return data for cache';
    }   
);

こんな感じで使います。


Skinnyはnewしてインスタンスを生成しなくても
直接クラスからメソッド呼び出しできるので、
インスタンスからのメソッド呼び出しなのか
クラスからのメソッド呼び出しなのかを
意識することなくデータをmemoryにキャッシュさせることがこれでできるようになります。


Cache::MemoryとしているのはCache::Memcachedとかを作ってもいいかなと思ったからですね。
作りたい人いませんかね?