Changeset 1591
- Timestamp:
- 08/24/06 20:59:50
- Files:
-
- trunk/plagger/lib/Plagger/Plugin.pm (modified) (1 diff)
- trunk/plagger/lib/Plagger/Plugin/Filter/EntryFullText.pm (modified) (2 diffs)
- trunk/plagger/lib/Plagger/Plugin/Filter/TruePermalink.pm (modified) (1 diff)
- trunk/plagger/lib/Plagger/Plugin/Widget/Simple.pm (modified) (1 diff)
- trunk/plagger/t/plugins/Filter-EntryFullText/kojiinet.t (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/plagger/lib/Plagger/Plugin.pm
r1412 r1591 149 149 my($self, $rule, $callback) = @_; 150 150 151 my $context = Plagger->context;152 153 my $dir = $self->assets_dir;151 unless (ref($rule)) { 152 $rule = File::Find::Rule->name($rule); 153 } 154 154 155 155 # $rule isa File::Find::Rule 156 for my $file ($rule->in($dir)) { 157 $callback->($file); 156 for my $file ($rule->in($self->assets_dir)) { 157 my $base = File::Basename::basename($file); 158 $callback->($file, $base); 158 159 } 159 160 } trunk/plagger/lib/Plagger/Plugin/Filter/EntryFullText.pm
r1588 r1591 37 37 my $context = Plagger->context; 38 38 39 my $dir = $self->assets_dir; 40 my $dh = DirHandle->new($dir) or $context->error("$dir: $!"); 41 for my $file (grep -f $_->[0] && $_->[0] =~ /\.(?:pl|yaml)$/, 42 map [ File::Spec->catfile($dir, $_), $_ ], sort $dh->read) { 43 $self->load_plugin(@$file); 44 } 45 } 46 47 sub load_plugin { 48 my($self, $file, $base) = @_; 49 50 Plagger->context->log(debug => "loading $file"); 51 52 my $load_method = $file =~ /\.pl$/ ? 'load_plugin_perl' : 'load_plugin_yaml'; 53 push @{ $self->{plugins} }, $self->$load_method($file, $base); 39 $self->load_assets('*.yaml', sub { $self->load_plugin_yaml(@_) }); 40 $self->load_assets('*.pl', sub { $self->load_plugin_perl(@_) }); 54 41 } 55 42 56 43 sub load_plugin_perl { 57 44 my($self, $file, $base) = @_; 45 46 Plagger->context->log(debug => "Load plugin $file"); 58 47 59 48 open my $fh, '<', $file or Plagger->context->error("$file: $!"); … … 80 69 Plagger->context->error($@) if $@; 81 70 82 return $plugin_class->new;71 push @{ $self->{plugins} }, return $plugin_class->new; 83 72 } 84 73 85 74 sub load_plugin_yaml { 86 75 my($self, $file, $base) = @_; 76 77 Plagger->context->log(debug => "Load YAML $file"); 87 78 my @data = YAML::LoadFile($file); 88 79 89 return map { Plagger::Plugin::Filter::EntryFullText::YAML->new($_, $base) }90 @data;80 push @{ $self->{plugins} }, 81 map { Plagger::Plugin::Filter::EntryFullText::YAML->new($_, $base) } @data; 91 82 } 92 83 trunk/plagger/lib/Plagger/Plugin/Filter/TruePermalink.pm
r1590 r1591 20 20 21 21 $self->load_assets( 22 File::Find::Rule->name('*.yaml'),22 '*.yaml', 23 23 sub { 24 24 my $file = shift; trunk/plagger/lib/Plagger/Plugin/Widget/Simple.pm
r1339 r1591 22 22 my $found; 23 23 $self->load_assets( 24 File::Find::Rule->name("$name.yaml"),24 "$name.yaml", 25 25 sub { 26 26 my $data = YAML::LoadFile(shift); trunk/plagger/t/plugins/Filter-EntryFullText/kojiinet.t
r1383 r1591 24 24 - module: Filter::EntryFullText 25 25 --- expected 26 ok $context->update->feeds->[0]->entries->[0]->body; 26 27 unlike $context->update->feeds->[0]->entries->[0]->body, qr/&#\d+;/; 27 28
