blob: f80d7dbb09597d13a31638ff0dea7d553a65c0c3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
use strict;
use warnings;
# FILENAME: metacpan.pm
# CREATED: 25/10/11 00:29:25 by Kent Fredric (kentnl) <kentfredric@gmail.com>
# ABSTRACT: A thin shim wrapper for metacpan::api with caching.
#
package metacpan;
use File::Spec;
use Sub::Exporter -setup => { exports => [ mcpan => \&build_mcpan ], };
sub build_mcpan {
my $mcpan;
return sub {
$mcpan ||= do {
require CHI;
my $cache = CHI->new(
driver => 'File',
root_dir => File::Spec->catdir( File::Spec->tmpdir, 'gentoo-metacpan-cache' ),
);
require WWW::Mechanize::Cached;
my $mech = WWW::Mechanize::Cached->new(
cache => $cache,
timeout => 20000,
autocheck => 1,
);
require HTTP::Tiny::Mech;
my $tinymech = HTTP::Tiny::Mech->new( mechua => $mech );
require MetaCPAN::API;
MetaCPAN::API->new( ua => $tinymech );
};
return $mcpan;
};
}
1;
|