Changeset 27993

Show
Ignore:
Timestamp:
01/06/09 13:36:52 (5 years ago)
Author:
holidays-l
Message:

アップするの間違えてた

Location:
lang/perl/Plagger-Plugin-Acme-CustomConfig/trunk
Files:
2 added
5 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/Plagger-Plugin-Acme-CustomConfig/trunk

    • Property svn:ignore set to
      blib
      inc
      pm_to_blib
      Makefile
      Makefile.old
      Plagger-Plugin-Acme-CustomConfig-*.tar.gz
  • lang/perl/Plagger-Plugin-Acme-CustomConfig/trunk/MANIFEST

    r27983 r27993  
    2222lib/Plagger/Plugin/Acme/CustomConfig/ReadLine.pm 
    2323lib/Plagger/Plugin/Acme/CustomConfig/ReadPassword.pm 
     24lib/Plagger/Plugin/Acme/CustomConfig_experiment.pm 
    2425Makefile.PL 
    2526MANIFEST                        This list of files 
     27MANIFEST.SKIP 
    2628README 
    2729t/00load.t 
  • lang/perl/Plagger-Plugin-Acme-CustomConfig/trunk/lib/Plagger/Plugin/Acme/CustomConfig.pm

    r27984 r27993  
    1111 
    1212use Carp; 
     13use English qw(-no_match_vars); 
    1314use UNIVERSAL::require; 
    1415 
    1516sub register { 
    16     my $self = shift; 
     17    my ( $self, $context ) = @_; 
    1718 
    18     sub can_handle { 
    19         my ($data) = @_; 
    20         return ref $data eq 'HASH' 
    21           && ( keys %{ $data } )[0] =~ /^Acme::CustomConfig::/ 
    22     } 
     19    $context->register_hook( $self, 'plugin.init' => \&init ); 
     20    return; 
     21} 
    2322 
    24     sub by_order { 
    25         my ( $data, $a, $b ) = @_; 
    26         my $order_max = 999; 
    27         return ( ( values %{ $data->{$a} } )[0]->{order} || $order_max ) 
    28           <=> ( ( values %{ $data->{$b} } )[0]->{order} || $order_max ); 
    29     } 
     23sub init { 
     24    my ( $self, $context ) = @_; 
    3025 
    31     my $do_walk = Plagger::Plugin->can('do_walk'); 
    32     undef *Plagger::Plugin::do_walk; 
    33     *Plagger::Plugin::do_walk = sub { 
    34         my ($self, $data) = @_; 
    35         my @conf; 
    36         if ( ref $data eq 'HASH' ) { 
    37             foreach my $key ( sort { by_order( $data, $a, $b ) } 
    38                 grep { can_handle( $data->{$_} ) } keys %{$data} ) 
    39             { 
    40                 my $hash_ref = ( values %{ $data->{$key} } )[0]; 
    41                 if ($key =~ /password/msx) { 
    42                     $hash_ref->{is_password} = 1; 
    43                 } 
    44                 push @conf, \$data->{$key}; 
     26    foreach my $i ( 0 .. @{ $context->{plugins} } ) { 
     27        if ( ref $context->{plugins}->[$i] ne __PACKAGE__ ) { 
     28            next; 
     29        } 
     30        $i++; 
     31        my $plugin = $context->{plugins}->[$i];    # $plugin is the next plugin. 
     32        foreach my $ref ( @{ $self->conf } ) { 
     33            my $module = __PACKAGE__ . q{::} . ( keys %{$ref} )[0]; 
     34            my $config = ( values %{$ref} )[0]; 
     35            $module->require or croak $EVAL_ERROR; 
     36            my $value = $module->run($config); 
     37            if ( defined $value ) { 
     38                $plugin->conf->{ $config->{name} } = $value; 
    4539            } 
    4640        } 
    47         elsif ( ref $data eq 'ARRAY' ) { 
    48             foreach my $hash_ref ( grep { can_handle($_) } @{$data} ) { 
    49                 push @conf, \$hash_ref; 
    50             } 
    51         } 
    52  
    53         foreach my $data_ref (@conf) { 
    54             my $is_password = delete ${$data_ref}->{is_password}; 
    55             my ($module, $conf) = each %{ ${$data_ref} }; 
    56  
    57             $module = 'Plagger::Plugin::' . $module; 
    58             $module->require or croak $@; 
    59             ${$data_ref} = $module->run($conf); 
    60             if ($is_password) { 
    61                 ${$data_ref} = Plagger::Crypt->encrypt(${$data_ref}, 'base64'); 
    62             } 
    63         } 
    64         use Data::Dumper;die Dumper $self; 
    65  
    66         goto &{$do_walk}; 
    67     }; 
     41    } 
    6842    return; 
    6943} 
     
    11690Register this plugin. 
    11791 
     92=head2 init($context) 
     93 
     94Initialize this plugin. 
     95 
    11896=head1 DIAGNOSTICS 
    11997 
  • lang/perl/Plagger-Plugin-Acme-CustomConfig/trunk/lib/Plagger/Plugin/Acme/CustomConfig/ReadLine.pm

    r27984 r27993  
    88use version; our $VERSION = qv('0.0.1'); 
    99 
    10 use English qw(-no_match_vars); 
    1110use Term::ReadKey; 
    1211 
     
    2221        $value = ReadLine(0); 
    2322        chomp $value; 
    24     }; 
    25     if ($EVAL_ERROR) { 
    26         undef $value; 
    27     } 
     23    } or undef $value; 
     24 
    2825    if ( !$value ) { 
    2926        $value = $data->{default}; 
  • lang/perl/Plagger-Plugin-Acme-CustomConfig/trunk/lib/Plagger/Plugin/Acme/CustomConfig/ReadPassword.pm

    r27984 r27993  
    88use version; our $VERSION = qv('0.0.1'); 
    99 
    10 use English qw(-no_match_vars); 
    1110use Term::ReadKey; 
    1211 
     
    2322        $value = ReadLine(0); 
    2423        chomp $value; 
    25     }; 
     24    } or undef $value; 
    2625    ReadMode(0); 
    27     if ($EVAL_ERROR) { 
    28         undef $value; 
    29     } 
    3026    if ( !$value ) { 
    3127        $value = $data->{default};