Changeset 328
- Timestamp:
- 10/28/06 11:01:53 (2 years ago)
- Files:
-
- library/perl/trunk/Text-Trac/MANIFEST (modified) (1 diff, 1 prop)
- library/perl/trunk/Text-Trac/lib/TestMacro.pm (added)
- library/perl/trunk/Text-Trac/lib/Text/Trac.pm (modified) (1 diff, 1 prop)
- library/perl/trunk/Text-Trac/lib/Text/Trac/BlockNode.pm (modified) (1 diff, 1 prop)
- library/perl/trunk/Text-Trac/lib/Text/Trac/Context.pm (modified) (1 diff)
- library/perl/trunk/Text-Trac/lib/Text/Trac/Macro.pm (modified) (2 diffs)
- library/perl/trunk/Text-Trac/lib/Text/Trac/Macro/HelloWorld.pm (modified) (1 diff)
- library/perl/trunk/Text-Trac/lib/Text/Trac/Macro/Timestamp.pm (modified) (1 diff)
- library/perl/trunk/Text-Trac/t/01-text-trac.t (modified) (2 diffs)
- library/perl/trunk/Text-Trac/t/02-macros.t (added)
- library/perl/trunk/Text-Trac/t/TestTextTrac.pm (added)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
library/perl/trunk/Text-Trac/MANIFEST
- Property svn:executable set to *
r324 r328 29 29 lib/Text/Trac/Ul.pm 30 30 lib/Text/Trac/Underline.pm 31 lib/Text/Trac/Macro.pm 32 lib/Text/Trac/Macro/Timestamp.pm 33 lib/Text/Trac/Macro/HelloWorld.pm 31 34 t/00-load.t 32 35 t/01-text-trac.t library/perl/trunk/Text-Trac/lib/Text/Trac.pm
- Property svn:executable set to *
r321 r328 32 32 permalink => $self->{permalink}, 33 33 min_heading_level => $self->{min_heading_level}, 34 trac_url => $self->{trac_url}, 34 35 }); 35 36 library/perl/trunk/Text-Trac/lib/Text/Trac/BlockNode.pm
- Property svn:executable set to *
r324 r328 80 80 push @matched_parsers, Text::Trac::P->new({ context => $self->context }) 81 81 if( !@matched_parsers and $type =~ /^block/ ); 82 83 82 return \@matched_parsers; 84 83 } library/perl/trunk/Text-Trac/lib/Text/Trac/Context.pm
r323 r328 3 3 use base qw (Class::Accessor::Fast); 4 4 5 __PACKAGE__->mk_accessors( qw( ul ol min_heading_level permalink in_block_of ) );5 __PACKAGE__->mk_accessors( qw( ul ol min_heading_level permalink in_block_of trac_url ) ); 6 6 7 7 my %Defaults = ( library/perl/trunk/Text-Trac/lib/Text/Trac/Macro.pm
r325 r328 3 3 use base qw(Text::Trac::InlineNode); 4 4 use UNIVERSAL::require; 5 use Text::ParseWords qw(quotewords); 5 6 6 7 sub init { 7 8 my $self = shift; 8 $self->pattern(qr/\[\[(\w+) \(?([^)]*)\)?\]\]/);9 $self->pattern(qr/\[\[(\w+) (?:\((.+?)\))? \]\]/x); 9 10 return $self; 10 11 } … … 16 17 $l =~ $pattern or return $l; 17 18 18 my @args = split ',', $2 if $2; 19 for ( @args ) { 20 $_ =~ s/^\s+//; 21 $_ =~ s/\s+$//; 19 my $macro = $1; 20 my @args = quotewords( ',\s*', 0, $2 ) if $2; 21 map { s/^\s+|\s+$//g } @args; 22 23 foreach my $class ("Text::Trac::Macro::$macro", $macro) { 24 if ( $class->require ) { 25 my $result = $class->process( $c, \@args ) || ''; 26 $l =~ s{$pattern}{$result}xmsg; 27 last; 28 } 22 29 } 23 24 my $class = "Text::Trac::Macro::$1";25 $class->require;26 my $result = $class->exec(@args) || '';27 28 $l =~ s{$pattern}{$result}xmsg;29 30 30 31 return $l; library/perl/trunk/Text-Trac/lib/Text/Trac/Macro/HelloWorld.pm
r325 r328 4 4 use warnings; 5 5 6 sub exec{7 my ( $class, @args ) = @_;8 return "Hello World, args = " . join ', ', @ args;6 sub process { 7 my ( $class, $c, $args ) = @_; 8 return "Hello World, args = " . join ', ', @$args; 9 9 } 10 10 library/perl/trunk/Text-Trac/lib/Text/Trac/Macro/Timestamp.pm
r325 r328 4 4 use warnings; 5 5 6 sub exec{6 sub process { 7 7 my $class = shift; 8 8 return '<b>' . localtime(time) . '</b>'; library/perl/trunk/Text-Trac/t/01-text-trac.t
r324 r328 1 #!perl -T2 3 1 use strict; 4 use Test::Base; 5 use Text::Trac; 6 7 delimiters('###'); 8 9 plan tests => 1 * blocks; 10 11 my $p = Text::Trac->new(); 12 13 sub parse { 14 local $_ = shift; 15 $p->parse($_); 16 $p->html; 17 } 18 19 filters { input => 'parse', expected => 'chomp' }; 20 run_is 'input' => 'expected'; 21 22 __DATA__ 2 use t::TestTextTrac; 3 4 run_tests; 5 6 __END__ 23 7 ### h1 test 24 8 --- input … … 339 323 </dl> 340 324 341 ### macro HelloWorld test342 --- input343 [[HelloWorld(arg1, arg2)]]344 --- expected345 <p>346 Hello World, args = arg1, arg2347 </p>
