NAME
    Tie::CHI - Tied hash to persistent CHI cache

VERSION
    version 0.02

SYNOPSIS
        use Tie::CHI;

        my %cache;

        # Pass CHI options to tie
        #
        tie %cache, 'Tie::CHI', { driver => 'File', root_dir => '/path/to/root' };
        tie %cache, 'Tie::CHI',
          {
            driver             => 'Memcached::libmemcached',
            namespace          => 'homepage',
            servers            => [ "10.0.0.15:11211", "10.0.0.15:11212" ],
            default_expires_in => '10 min'
          } );

        # or pass an existing CHI object
        #
        my $chi_object = CHI->new(...);
        tie %cache, 'Tie::CHI', $chi_object;

        # Perform cache operations
        #
        my $customer = $cache{$name};
        if ( !defined $customer ) {
              $customer = get_customer_from_db($name);
              $cache{$name} = $customer;
        }
        delete( $cache{$name} );

        # Break the binding
        #
        untie(%cache);

DESCRIPTION
    Tie::CHI implements a tied hash connected to a CHI cache. It can be used
    with any of CHI's backends (File, Memcached, DBI, etc.)

    Usage is one of the following:

        tie %cache, 'Tie::CHI', $hash_of_chi_options;
        tie %cache, 'Tie::CHI', $existing_chi_cache;

    A read/write/delete on the tied hash will result in a
    `get'/`set'/`remove' on the underlying cache. `keys' and `each' will be
    supported if the underlying CHI driver supports `get_keys'.

    There is no way to specify expiration for an individual `set', but you
    can pass `expires_in', `expires_at' and/or `expires_variance' to the tie
    to specify default expiration. e.g.

        tie %cache, 'Tie::CHI', { 
            namespace => 'products',
            driver => 'DBI',
            dbh => DBIx::Connector->new(...),
            expires_in => '4 hours',
            expires_variance => '0.2'
        };

SUPPORT AND DOCUMENTATION
    Questions and feedback are welcome, and should be directed to the
    perl-cache mailing list:

        http://groups.google.com/group/perl-cache-discuss

    Bugs and feature requests will be tracked at RT:

        http://rt.cpan.org/NoAuth/Bugs.html?Dist=Tie-CHI
        bug-tie-chi@rt.cpan.org

    The latest source code can be browsed and fetched at:

        http://github.com/jonswar/perl-tie-chi/tree/master
        git clone git://github.com/jonswar/perl-tie-chi.git

SEE ALSO
    CHI

AUTHOR
    Jonathan Swartz <swartz@pobox.com>

COPYRIGHT AND LICENSE
    This software is copyright (c) 2011 by Jonathan Swartz.

    This is free software; you can redistribute it and/or modify it under
    the same terms as the Perl 5 programming language system itself.

