Changeset 424
- Timestamp:
- 03/21/08 18:15:02 (8 months ago)
- Location:
- veekun/trunk
- Files:
-
- 4 modified
-
README.pod (modified) (1 diff)
-
lib/Vee.pm (modified) (3 diffs)
-
lib/Vee/Controller/Root.pm (modified) (4 diffs)
-
lib/Vee/Utils.pm (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
veekun/trunk/README.pod
r407 r424 39 39 String::Approx 40 40 Template 41 Time::Out 41 42 XML::Feed 42 43 YAML -
veekun/trunk/lib/Vee.pm
r407 r424 5 5 use strict; 6 6 use warnings; 7 8 use Image::Size; 9 use LWP::UserAgent; 10 use Time::Out qw/timeout/; 11 use YAML qw//; 7 12 8 13 # load crap … … 28 33 use Vee::Utils; 29 34 use Vee::Dex; 30 use YAML qw//;31 use LWP::UserAgent;32 use Image::Size;33 35 34 36 our $VERSION = '0.01'; … … 56 58 57 59 # grab the current revision number, if applicable 58 __PACKAGE__->cache->{svn_revision} = 59 Vee::Utils::timed_exec( 5 => sub { 60 open my $fh, '-|', 'svnversion' or return;61 my $revision = <$fh>;62 close $fh;63 $revision =~ s/ \D+ $//gx;64 return $revision;65 } ) 66 unless __PACKAGE__->debug;60 __PACKAGE__->cache->{svn_revision} = timeout 5, sub { 61 warn "begin sub"; 62 open my $fh, '-|', 'svnversion' or return; 63 my $revision = <$fh>; 64 close $fh; 65 $revision =~ s/ \D+ $//gx; 66 return $revision; 67 warn "end sub"; 68 }; 67 69 68 70 { -
veekun/trunk/lib/Vee/Controller/Root.pm
r423 r424 4 4 use warnings; 5 5 use base 'Catalyst::Controller'; 6 7 use Vee::Authorization; 8 use Vee::Utils; 6 9 7 10 use Data::Dumper; … … 9 12 use File::Path; 10 13 use Time::HiRes; 14 use Time::Out qw/timeout/; 11 15 use URI; 12 16 use XML::Feed; 13 14 use Vee::Authorization;15 use Vee::Utils;16 17 17 18 # Sets the actions in this controller to be registered with no prefix … … 285 286 # Refresh Bulbapedia feeds 286 287 eval { 287 Vee::Utils::timed_exec( 5 => sub { 288 timeout 5, sub { 289 warn "begin sub"; 288 290 my $uri = URI->new($c->site_opts->{rss_url}); 289 291 my @entries = XML::Feed->parse($uri)->entries; … … 291 293 @entries[ 0 .. $c->site_opts->{page_sizes}{index}{rss} - 1 ]; 292 294 $c->cache->{rss_entries} = \@entries; 293 } ); 295 warn "end sub"; 296 }; 294 297 }; 295 298 -
veekun/trunk/lib/Vee/Utils.pm
r406 r424 89 89 } 90 90 91 # execute code but give up after x seconds92 # this is taken from perldoc -f alarm93 sub timed_exec {94 my ($secs, $subref) = @_;95 my $res = eval {96 local $SIG{ALRM} = sub { die "alarm\n" };97 alarm $secs;98 my $res = $subref->();99 alarm 0;100 return $res;101 };102 103 if ($@) {104 die unless $@ eq "alarm\n"; # propagate unexpected errors105 return;106 } else {107 return $res;108 }109 }110 111 91 # URL-validation regex 112 92 # Inferred from the W3's BNF: http://www.w3.org/Addressing/URL/5_BNF.html
