File: Macro.pm

package info (click to toggle)
libtext-trac-perl 0.24-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 712 kB
  • sloc: perl: 1,462; makefile: 10
file content (37 lines) | stat: -rwxr-xr-x 665 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package Text::Trac::Macro;
use strict;
use warnings;

use base qw(Text::Trac::InlineNode Class::Accessor::Fast);
use UNIVERSAL::require;
use Text::ParseWords qw(quotewords);

our $VERSION = '0.24';

__PACKAGE__->mk_accessors('pattern');

sub new {
	my $class = shift;
	my $self  = {};
	bless $self, $class;
	return $self;
}

sub parse {
	my ( $self, $name, $args, $match ) = @_;
	my $c = $self->{context};

	my @args = $args ? quotewords( ',\s*', 0, $args ) : ();
	s/^\s+|\s+$//g for @args;

	foreach my $class ( "Text::Trac::Macro::$name", $name ) {
		if ( $class->require ) {
			$match = $class->process( $c, @args ) || '';
			last;
		}
	}

	return $match;
}

1;