Changeset 21801
- Timestamp:
- 10/21/08 22:48:38 (5 years ago)
- Location:
- lang/perl/Helper-Simple/trunk
- Files:
-
- 2 modified
-
Makefile.PL (modified) (1 diff)
-
lib/Helper/Simple.pm (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
lang/perl/Helper-Simple/trunk/Makefile.PL
r21710 r21801 23 23 'LWP::UserAgent' => 0, 24 24 'IO::String' => 0, 25 'File::NCopy' => 0,26 25 'Module::Pluggable' => 0, 27 26 'File::Where' => 0, -
lang/perl/Helper-Simple/trunk/lib/Helper/Simple.pm
r21768 r21801 13 13 use Template (); 14 14 use Tie::Hash::Indexed (); 15 use Term::ProgressBar ();16 15 use Cwd qw/getcwd/; 17 16 use LWP::UserAgent (); 18 17 use IO::String (); 19 use File::NCopy ();20 18 use Module::Pluggable (); 19 use Clone (); 21 20 use Config; 22 21 23 use Clone (); 22 eval "require Term::ProgressBar;"; 23 our $PROGRESSBAR = $@ ? 0 : 1; 24 24 25 25 our @EXPORT_FUNCS = qw/file copy my_var dir_case subdir_case … … 75 75 } 76 76 foreach my $p (@pms) { 77 local $@;78 77 eval "require $p;"; 79 78 warn "require error: $p ($@)" if $@; … … 350 349 local $Data::Dumper::Terse = 1; 351 350 $helper = $generator->($class, Dumper(\%DATA)) if defined $generator; 352 353 _write_file($helper_place, $helper ||= sprintf <<'__PL__', $Config{startperl}, ($class) x 4, Dumper(\%DATA)); 351 $helper ||= sprintf <<'__PL__', $Config{startperl}, ($class) x 5, Dumper(\%DATA); 354 352 #!%s 355 353 … … 359 357 no strict 'refs'; 360 358 361 use base'Helper::Simple';359 push @%s::ISA, 'Helper::Simple'; 362 360 363 361 foreach my $pkg (grep /^%s::/, keys %%Helper::Simple::DATA) { … … 371 369 } 372 370 __PL__ 371 372 local $/ = undef; 373 $helper .= "\n"; 374 $helper .= slurp(File::Where->where_pm(__PACKAGE__)); 375 _write_file($helper_place, $helper); 373 376 } 374 377 … … 629 632 630 633 _info('download', $target); 631 my $progress = new Term::ProgressBar 632 ({ 633 count => 512, 634 name => "# downloading ", 635 ETA => 'linear', 636 }); 637 $progress->minor(0); # turns off the floating asterisks. 638 $progress->max_update_rate(1); # only relevant when ETA is used. 639 640 my $did_set_target = 0; 641 my $received_size = 0; 642 my $next_update = 0; 643 644 my %args = ( 645 ':content_cb' => sub { 646 my ($data, $cb_response, $protocol) = @_; 647 unless ($did_set_target) { 648 if (my $content_length = $cb_response->content_length) { 649 $progress->target($content_length); 650 $did_set_target = 1; 651 } else { 652 $progress->target($received_size + 2 * length $data); 653 } 654 } 655 $received_size += length $data; 656 $content .= $data; 657 658 $next_update = $progress->update($received_size) if 659 $received_size >= $next_update; 660 661 }, 662 ':read_size_hint' => 512, 663 ); 634 my %args; 635 if ($PROGRESSBAR) { 636 my $progress = new Term::ProgressBar 637 ({ 638 count => 512, 639 name => "# downloading ", 640 ETA => 'linear', 641 }); 642 $progress->minor(0); # turns off the floating asterisks. 643 $progress->max_update_rate(1); # only relevant when ETA is used. 644 645 my $did_set_target = 0; 646 my $received_size = 0; 647 my $next_update = 0; 648 649 %args = ( 650 ':content_cb' => sub { 651 my ($data, $cb_response, $protocol) = @_; 652 unless ($did_set_target) { 653 if (my $content_length = $cb_response->content_length) { 654 $progress->target($content_length); 655 $did_set_target = 1; 656 } else { 657 $progress->target($received_size + 2 * length $data); 658 } 659 } 660 $received_size += length $data; 661 $content .= $data; 662 663 $next_update = $progress->update($received_size) if 664 $received_size >= $next_update; 665 666 }, 667 ':read_size_hint' => 512, 668 ); 669 } 664 670 my $res = $ua->$req($target, $req eq 'get' ? (%{$option->{form} || {}}, %args) 665 671 : {%{$option->{form} || {}}, %args}); … … 1006 1012 here->dir; # returns "lib/Hoge/" 1007 1013 1014 =head1 TODO 1015 1016 =over 4 1017 1018 =item need helper program to create template. 1019 1020 like the following; 1021 1022 helper-template -template catalyst YourApp 1023 helper-setup -template catalyst YourApp ./yourapp.pl 1024 1025 =back 1026 1008 1027 =head1 AUTHOR 1009 1028
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)