Changeset 26254
- Timestamp:
- 12/10/08 03:52:24 (4 years ago)
- Location:
- lang/perl/Helper-Simple/trunk
- Files:
-
- 4 modified
-
lib/Helper/Simple.pm (modified) (9 diffs)
-
t/03-create_files.t (modified) (1 diff)
-
t/03-create_files2.t (modified) (1 diff)
-
t/03-create_files3.t (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
lang/perl/Helper-Simple/trunk/lib/Helper/Simple.pm
r26081 r26254 28 28 BEGIN {$PROGRESSBAR = eval "require Term::ProgressBar;";} 29 29 our @EXPORT_FUNCS = qw/file copy my_var template_option template_tags var default_var 30 download dl 30 download dl ask 31 31 /; 32 32 our %DATA = … … 227 227 } 228 228 229 sub ask { 230 my ($self, $target_option) = _here(@_); 231 if (ref $target_option eq 'HASH') { 232 $target_option->{ask} = 1; 233 return $target_option; 234 } 235 } 236 229 237 sub copy { 230 238 my ($self, @data) = _here(@_); … … 246 254 } 247 255 $self->_files($target, $option); 256 return $self->{files}->{$target}; 248 257 } 249 258 } … … 254 263 my ($target, $option) = ref $d eq 'ARRAY' ? (@$d) : $d; 255 264 $self->_dls($target, $option || {}); 265 return $self->{dls}->{$target}; 256 266 } 257 267 } … … 309 319 310 320 sub setup_script { 311 my ($class, $ helper_place, $generator) = @_;312 my $ helper;313 314 Carp::croak('specify helper place.') unless $helper_place;321 my ($class, $script_place, $generator) = @_; 322 my $script; 323 324 Carp::croak('specify script place.') unless $script_place; 315 325 local $Data::Dumper::Purity = 1; 316 326 local $Data::Dumper::Terse = 1; 317 $ helper= $generator->($class, Dumper(\%DATA)) if defined $generator;318 $ helper||= sprintf <<'__PL__', $Config{startperl}, ($class) x 5, Dumper(\%DATA);327 $script = $generator->($class, Dumper(\%DATA)) if defined $generator; 328 $script ||= sprintf <<'__PL__', $Config{startperl}, ($class) x 5, Dumper(\%DATA); 319 329 %s 320 330 … … 338 348 339 349 local $/ = undef; 340 $helper .= "\n"; 341 $helper .= slurp(_where_pm(__PACKAGE__)); 342 $class->_write_file($helper_place, $helper); 343 chmod 0755, $helper_place; 350 $script .= "\n"; 351 $script .= slurp(_where_pm(__PACKAGE__)); 352 $script =~s{\n\=head1 NAME.+$}{}s; 353 $script .= _script_document($script_place); 354 $class->_write_file($script_place, $script); 355 chmod 0755, $script_place; 356 } 357 358 sub _script_document { 359 my ($place) = @_; 360 $place =~s{^[\./]+}{}; 361 return sprintf <<__DOC__, $place; 362 =head1 Name 363 364 =head1 DESCRIPTION 365 366 =head1 USAGE 367 368 %s ./dir 369 370 =head1 OPTIONS 371 372 =head2 -h 373 374 show this help 375 376 __DOC__ 377 } 378 379 sub _ask_skip { 380 my ($self, $target, $option) = @_; 381 return if not ref $option or not $option->{ask}; 382 383 print "process $target ?(Y/N) "; 384 while (my $s = <STDIN>) { 385 chomp $s; 386 return 0 if $s =~ /^y$/i; 387 return 1 if $s =~ /^n$/i; 388 print " Y/N ?"; 389 } 390 344 391 } 345 392 … … 349 396 350 397 while (my ($file, $c) = each %{$pkg->_files}) { 398 next if $pkg->_ask_skip($file, $c); 399 351 400 my ($o, $render_file) = ('', 1); 352 401 unless (ref $c) { … … 544 593 545 594 while (my ($target, $option) = each %{$pkg->_dls}) { 595 next if $pkg->_ask_skip($target, $option); 596 546 597 my $dir = $pkg->dir; 547 598 … … 997 1048 request method. default is get. 998 1049 1050 =head2 ask 1051 1052 ask user to process. 1053 You can put this function before some functions, copy and dl/download. 1054 For example. 1055 1056 ask copy $file; 1057 1058 Only when user answer 'Y/y', this process will be done. 1059 999 1060 =head2 var 1000 1061 -
lang/perl/Helper-Simple/trunk/t/03-create_files.t
r25952 r26254 9 9 10 10 MyHelper->setup_files('./t/tmp'); 11 MyHelper->setup_ helper('./t/tmp/myhelper.pl');11 MyHelper->setup_script('./t/tmp/myhelper.pl'); -
lang/perl/Helper-Simple/trunk/t/03-create_files2.t
r25952 r26254 9 9 10 10 MyHelper2::Test->setup_files('./t/tmp2'); 11 MyHelper2::Test->setup_ helper('./t/tmp2/myhelper2.pl');11 MyHelper2::Test->setup_script('./t/tmp2/myhelper2.pl'); -
lang/perl/Helper-Simple/trunk/t/03-create_files3.t
r25988 r26254 11 11 12 12 MyHelper2::Test->setup_files('./t/tmp3'); 13 MyHelper2::Test->setup_ helper('./t/tmp3/myhelper2.pl');13 MyHelper2::Test->setup_script('./t/tmp3/myhelper2.pl');
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)