App-Cache

 view release on metacpan or  search on metacpan

META.yml  view on Meta::CPAN

distribution_type:  module
configure_requires:
    ExtUtils::MakeMaker:  0
build_requires:
    ExtUtils::MakeMaker:  0
requires:
    Class::Accessor::Chained::Fast:  0
    File::Find::Rule:     0
    File::HomeDir:        0
    File::stat:           0
    HTTP::Cookies:        0
    LWP::UserAgent:       0
    Path::Class:          0
    Storable:             0
    Test::More:           0
no_index:
    directory:
        - t
        - inc
generated_by:       ExtUtils::MakeMaker version 6.55_02
meta-spec:

Makefile.PL  view on Meta::CPAN

    'INSTALLDIRS'  => 'site',
    'NAME'         => 'App::Cache',
    'VERSION_FROM' => 'lib/App/Cache.pm',
    'ABSTRACT'     => 'Easy application-level caching',
    'LICENSE'      => 'perl',
    'AUTHOR'       => 'Leon Brocard <acme@astray.com>',
    'PREREQ_PM'    => {
        'File::Find::Rule'               => '0',
        'File::HomeDir'                  => '0',
        'Storable'                       => '0',
        'HTTP::Cookies'                  => '0',
        'Test::More'                     => '0',
        'Class::Accessor::Chained::Fast' => '0',
        'LWP::UserAgent'                 => '0',
        'Path::Class'                    => '0',
        'File::stat'                     => '0'
    }
);

lib/App/Cache.pm  view on Meta::CPAN

package App::Cache;
use strict;
use warnings;
use File::Find::Rule;
use File::HomeDir;
use File::Path qw( mkpath );
use File::stat;
use HTTP::Cookies;
use LWP::UserAgent;
use Path::Class;
use Storable qw(nstore retrieve);
use base qw( Class::Accessor::Chained::Fast );
__PACKAGE__->mk_accessors(qw( application directory ttl enabled ));
our $VERSION = '0.37';

sub new {
    my $class = shift;
    my $self  = $class->SUPER::new(@_);

lib/App/Cache.pm  view on Meta::CPAN

        $self->set( $key, $data );
    }
    return $data;
}

sub get_url {
    my ( $self, $url ) = @_;
    my $data = $self->get($url);
    unless ($data) {
        my $ua = LWP::UserAgent->new;
        $ua->cookie_jar( HTTP::Cookies->new() );
        my $response = $ua->get($url);
        if ( $response->is_success ) {
            $data = $response->content;
        } else {
            die "Error fetching $url: " . $response->status_line;
        }
        $self->set( $url, $data );
    }
    return $data;
}



( run in 0.606 second using v1.01-cache-2.11-cpan-10033ea8487 )