Changeset 20361

Show
Ignore:
Timestamp:
10/01/08 15:44:23 (5 years ago)
Author:
yappo
Message:

flavor 作成時に author と email を聞くというのと、Plugin でも聞けるようにtrigger point追加

Location:
lang/perl/Module-Setup/trunk
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/Module-Setup/trunk/Makefile.PL

    r20360 r20361  
    1212requires 'Module::Collect'; 
    1313requires 'Pod::Usage'; 
     14requires 'Scalar::Util'; 
    1415requires 'Template'; 
    1516requires 'YAML'; 
  • lang/perl/Module-Setup/trunk/lib/Module/Setup.pm

    r20360 r20361  
    1818use YAML (); 
    1919 
    20 use Data::Dumper; 
    2120 
    2221sub new { 
     
    3534    my($self, $msg, $default) = @_; 
    3635    return $default unless $self->has_term; 
    37     prompt($msg, $default);     
     36    prompt($msg, $default); 
    3837} 
    3938 
     
    156155            Carp::croak $@ if $@; 
    157156        } 
    158         $loaded_plugin{$pkg} = $pkg->new( config => $config ); 
     157        $loaded_plugin{$pkg} = $pkg->new( context => $self, config => $config ); 
    159158    } 
    160159} 
     
    282281        push @{ $config->{plugins} }, @{ $options->{plugins} }; 
    283282    } 
     283    $config->{plugins} ||= []; 
     284 
     285    # load plugins 
     286    $self->load_plugins(+{ 
     287        %{ $config }, 
     288        %{ $options }, 
     289        plugins => $config->{plugins}, 
     290    }); 
     291 
     292    # ask author and mail 
     293    $config->{author} ||= 'Default Name'; 
     294    $config->{author} = $self->dialog("Your name: ", $config->{author}); 
     295 
     296    $config->{email} ||= 'default {at} example.com'; 
     297    $config->{email} = $self->dialog("Your email: ", $config->{email}); 
     298 
     299    $self->call_trigger( befor_dump_config => $config ); 
     300 
     301    # reset triggers # this is bad hack 
     302    delete $self->{__triggers}; 
     303    delete $self->{_class_trigger_results}; 
    284304 
    285305    # save config 
  • lang/perl/Module-Setup/trunk/lib/Module/Setup/Flavor/Default.pm

    r20360 r20361  
    185185    - Template 
    186186    - Test::Makefile 
     187 
  • lang/perl/Module-Setup/trunk/lib/Module/Setup/Plugin.pm

    r20360 r20361  
    33use warnings; 
    44 
    5 sub base_class { shift->{base_class} } 
     5use Scalar::Util qw(weaken); 
    66 
    77sub new { 
    88    my($class, %args) = @_; 
    9     $args{base_class} ||= 'Module::Setup'; 
    109    my $self = bless { %args }, $class; 
     10    weaken $self->{context}; 
    1111    $self->register; 
    1212    $self; 
     
    1717sub add_trigger { 
    1818    my($self, @args) = @_; 
    19     $self->base_class->add_trigger(@args); 
     19    $self->{context}->add_trigger(@args); 
    2020} 
    2121