강현태

Fix original & optimized src bundles

1 +
2 +package Text::Template::Preprocess;
3 +use Text::Template;
4 +@ISA = qw(Text::Template);
5 +$Text::Template::Preprocess::VERSION = 1.46;
6 +
7 +sub fill_in {
8 + my $self = shift;
9 + my (%args) = @_;
10 + my $pp = $args{PREPROCESSOR} || $self->{PREPROCESSOR} ;
11 + if ($pp) {
12 + local $_ = $self->source();
13 +# print "# fill_in: before <$_>\n";
14 + &$pp;
15 +# print "# fill_in: after <$_>\n";
16 + $self->set_source_data($_);
17 + }
18 + $self->SUPER::fill_in(@_);
19 +}
20 +
21 +sub preprocessor {
22 + my ($self, $pp) = @_;
23 + my $old_pp = $self->{PREPROCESSOR};
24 + $self->{PREPROCESSOR} = $pp if @_ > 1; # OK to pass $pp=undef
25 + $old_pp;
26 +}
27 +
28 +1;
29 +
30 +
31 +=head1 NAME
32 +
33 +Text::Template::Preprocess - Expand template text with embedded Perl
34 +
35 +=head1 VERSION
36 +
37 +This file documents C<Text::Template::Preprocess> version B<1.46>
38 +
39 +=head1 SYNOPSIS
40 +
41 + use Text::Template::Preprocess;
42 +
43 + my $t = Text::Template::Preprocess->new(...); # identical to Text::Template
44 +
45 + # Fill in template, but preprocess each code fragment with pp().
46 + my $result = $t->fill_in(..., PREPROCESSOR => \&pp);
47 +
48 + my $old_pp = $t->preprocessor(\&new_pp);
49 +
50 +=head1 DESCRIPTION
51 +
52 +C<Text::Template::Preprocess> provides a new C<PREPROCESSOR> option to
53 +C<fill_in>. If the C<PREPROCESSOR> option is supplied, it must be a
54 +reference to a preprocessor subroutine. When filling out a template,
55 +C<Text::Template::Preprocessor> will use this subroutine to preprocess
56 +the program fragment prior to evaluating the code.
57 +
58 +The preprocessor subroutine will be called repeatedly, once for each
59 +program fragment. The program fragment will be in C<$_>. The
60 +subroutine should modify the contents of C<$_> and return.
61 +C<Text::Template::Preprocess> will then execute contents of C<$_> and
62 +insert the result into the appropriate part of the template.
63 +
64 +C<Text::Template::Preprocess> objects also support a utility method,
65 +C<preprocessor()>, which sets a new preprocessor for the object. This
66 +preprocessor is used for all subsequent calls to C<fill_in> except
67 +where overridden by an explicit C<PREPROCESSOR> option.
68 +C<preprocessor()> returns the previous default preprocessor function,
69 +or undefined if there wasn't one. When invoked with no arguments,
70 +C<preprocessor()> returns the object's current default preprocessor
71 +function without changing it.
72 +
73 +In all other respects, C<Text::Template::Preprocess> is identical to
74 +C<Text::Template>.
75 +
76 +=head1 WHY?
77 +
78 +One possible purpose: If your files contain a lot of JavaScript, like
79 +this:
80 +
81 +
82 + Plain text here...
83 + { perl code }
84 + <script language=JavaScript>
85 + if (br== "n3") {
86 + // etc.
87 + }
88 + </script>
89 + { more perl code }
90 + More plain text...
91 +
92 +You don't want C<Text::Template> to confuse the curly braces in the
93 +JavaScript program with executable Perl code. One strategy:
94 +
95 + sub quote_scripts {
96 + s(<script(.*?)</script>)(q{$1})gsi;
97 + }
98 +
99 +Then use C<PREPROCESSOR =E<gt> \&quote_scripts>. This will transform
100 +
101 +
102 +
103 +=head1 SEE ALSO
104 +
105 +L<Text::Template>
106 +
107 +=head1 AUTHOR
108 +
109 +
110 +Mark Jason Dominus, Plover Systems
111 +
112 +Please send questions and other remarks about this software to
113 +C<mjd-perl-template+@plover.com>
114 +
115 +You can join a very low-volume (E<lt>10 messages per year) mailing
116 +list for announcements about this package. Send an empty note to
117 +C<mjd-perl-template-request@plover.com> to join.
118 +
119 +For updates, visit C<http://www.plover.com/~mjd/perl/Template/>.
120 +
121 +=head1 LICENSE
122 +
123 + Text::Template::Preprocess version 1.46
124 + Copyright 2013 Mark Jason Dominus
125 +
126 + This program is free software; you can redistribute it and/or
127 + modify it under the terms of the GNU General Public License as
128 + published by the Free Software Foundation; either version 2 of the
129 + License, or (at your option) any later version. You may also can
130 + redistribute it and/or modify it under the terms of the Perl
131 + Artistic License.
132 +
133 + This program is distributed in the hope that it will be useful,
134 + but WITHOUT ANY WARRANTY; without even the implied warranty of
135 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
136 + GNU General Public License for more details.
137 +
138 + You should have received copies of the GNU General Public License
139 + along with this program; if not, write to the Free Software
140 + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
141 +
142 +
143 +=cut
144 +
1 +-----BEGIN CERTIFICATE-----
2 +MIIDhzCCAm+gAwIBAgIJAJTed6XmFiu/MA0GCSqGSIb3DQEBCwUAMFoxCzAJBgNV
3 +BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX
4 +aWRnaXRzIFB0eSBMdGQxEzARBgNVBAMMCnN1YmludGVyQ0EwHhcNMTUwNzAyMTMy
5 +MTU4WhcNMzUwNzAyMTMyMTU4WjBaMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29t
6 +ZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRMwEQYD
7 +VQQDDApzdWJpbnRlckNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
8 +/zQjvhbU7RWDsRaEkVUBZWR/PqZ49GoE9p3OyRN4pkt1c1yb2ARVkYZP5e9gHb04
9 +wPVz2+FYy+2mNkl+uAZbcK5w5fWO3WJIEn57he4MkWu3ew1nJeSv3na8gyOoCheG
10 +64kWVbA2YL92mR7QoSCo4SP7RmykLrwj6TlDxqgH6DxKSD/CpdCHE3DKAzAiri3G
11 +Vc90OJAszYHlje4/maVIOayGROVET3xa5cbtRJl8IBgmqhMywtz4hhY/XZTvdEn2
12 +90aL857Hk7JjogA7mLKi07yKzknMxHV+k6JX7xJEttkcNQRFHONWZG1T4mRY1Drh
13 +6VbJGb+0GNIldNLQqigkfwIDAQABo1AwTjAMBgNVHRMEBTADAQH/MB0GA1UdDgQW
14 +BBTpZ30QdMGarrhMPwk+HHAV3R8aTzAfBgNVHSMEGDAWgBTpZ30QdMGarrhMPwk+
15 +HHAV3R8aTzANBgkqhkiG9w0BAQsFAAOCAQEAF8UAMtV1DClUWRw1h+THdAhjeo8S
16 +9BOp6QphtlYuc9o+tQri5m+WqbyUZKIBEtumNhFb7QI1e4hO64y1kKbSs2AjWcJ2
17 +QxAyGiMM3wl2UfxPohDtgNhm0GFgQ1tUTeSnW3kAom9NqI7U/2lPpLh4rrFYTepR
18 +wy0FV3NpRuHPtJE0VfqYnwWiTRdCJ7w1XzknKOUSHP/hRbyJVlwQp3VEQ9SIOYU6
19 +C+QEVGIgQiST6MRlCvoNP43guaRtrMuBZJaHKy/hLPvkdRpXHoUeKQFDuH77sZsF
20 +sBv3EHNKoBvpSpSJndZN6UcH7Z1yn41Y6AnO4u492jiRAjQpP9+Nf/x1eg==
21 +-----END CERTIFICATE-----
1 +-----BEGIN RSA PRIVATE KEY-----
2 +MIIEpQIBAAKCAQEA/zQjvhbU7RWDsRaEkVUBZWR/PqZ49GoE9p3OyRN4pkt1c1yb
3 +2ARVkYZP5e9gHb04wPVz2+FYy+2mNkl+uAZbcK5w5fWO3WJIEn57he4MkWu3ew1n
4 +JeSv3na8gyOoCheG64kWVbA2YL92mR7QoSCo4SP7RmykLrwj6TlDxqgH6DxKSD/C
5 +pdCHE3DKAzAiri3GVc90OJAszYHlje4/maVIOayGROVET3xa5cbtRJl8IBgmqhMy
6 +wtz4hhY/XZTvdEn290aL857Hk7JjogA7mLKi07yKzknMxHV+k6JX7xJEttkcNQRF
7 +HONWZG1T4mRY1Drh6VbJGb+0GNIldNLQqigkfwIDAQABAoIBAQDg14MWGu+F4gqg
8 +nwI1OPt95UjmXaz7Sd0NmoNxTKJjgN/9v33emBL7n6YNIxU/nlK+ToLBGo0tPjfO
9 +ZHoskA1H/aiiMfKowcpV4PHbUZvpE0oYM/rIu+7mxR3ZPDT0jz3jjmgLHrEKFCXd
10 +SfTtwOSJVzYvGdCdDE1nUXiRMcGlrJYxPf+0k3sGK7G90rYJkgffz92yuJote/s5
11 +P5nsK1h30yjKaWEzvf3ABladplykFN3GkICRGaCq0Nj5YWiG7qX9H9smYrioG0VH
12 +VqgIbV2sHnmUYZaOTmC0RnwDWSZR25xOHVbugZ7rGnf4NdoM2S/oTI/SAXcDsaDX
13 +lDpiEEuBAoGBAP/TISpeDRtUWzfVQxH+wbMdSbABjawf5sT7op7IsWsurY7u+KVh
14 +ubhaSdeR7YbTyVUqbAc4mg9TIZxDe6+/I2S8LibQAa8wnv5aR1iPj/tZJOKrtu+Z
15 +uHUyXMDR+8pIjQS0N+ukFp0tw9nicPNUt23JpqDFMvpASF+kUlnHOWAvAoGBAP9g
16 +5rDid235QnnAhNJGkxE1ZwICPSo66AD/kF8XsMnAVasR0EPJCQ1+Zmh7wsXGq6Im
17 +S65F4m0tsw4jeD67D1o5yuAnk/LLcdOdHW1w7iHuIhYKuWf1fqsOIqJLy7gdzwj4
18 +hImECoE40cqlLTge7xByxeHJwKF9ssXcwHFBIJyxAoGBAI5SeyUC5e/KYmURdBrS
19 +zBhFtvUAKD0WEmCMTdBgfrPOaCgYsqPvVk9Fi8cuHCLiOCP1UdxClRLpgM1ajbkc
20 +cShduJ9HIWjBd/KxbvfKBqQi1+5y8Xci4gfxWMC9EYNcEXgIewPRafNPvqG85HG7
21 +M8EUamsOymmG0bzDwjzIJRdpAoGAOUoVtmy3ehZG0WVc5ocqitu+BfdWnViln0O1
22 +sX9xC3F4Rm4ymGJLA5ntg1bwNMoCytdodun6h5+O4YcXfIseQJFib7KxP/Bf0qcW
23 +aOzCnx36y5MQUMAD8H+1SU9TnjQhs9N8eBUE/kQu3BT99e8KllgJCEPoUNIP/s8s
24 +5LtFg6ECgYEAgLwJoJ3hBwr0LmUi3kpFYdbZ+tAKIvKQH3xYMnQulOqtlXJFy0bu
25 +ZcIAwsigRUqdCC2JuyAUw52HCtVVlpQjNs4BnUzaKooLOCm3w3i6X27mnHE0200S
26 +zqC0rcB0xNz/IltGc7IP+T8UK5xX38uhJ/vUW75OvAjqheJSBwR9h5c=
27 +-----END RSA PRIVATE KEY-----
1 +-----BEGIN CERTIFICATE-----
2 +MIIDhDCCAmygAwIBAgIJAJkv2OGshkmUMA0GCSqGSIb3DQEBCwUAMFcxCzAJBgNV
3 +BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX
4 +aWRnaXRzIFB0eSBMdGQxEDAOBgNVBAMTB2ludGVyQ0EwHhcNMTUwNzAyMTMxODIz
5 +WhcNMzUwNzAyMTMxODIzWjBaMQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1T
6 +dGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRMwEQYDVQQD
7 +EwpzdWJpbnRlckNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/zQj
8 +vhbU7RWDsRaEkVUBZWR/PqZ49GoE9p3OyRN4pkt1c1yb2ARVkYZP5e9gHb04wPVz
9 +2+FYy+2mNkl+uAZbcK5w5fWO3WJIEn57he4MkWu3ew1nJeSv3na8gyOoCheG64kW
10 +VbA2YL92mR7QoSCo4SP7RmykLrwj6TlDxqgH6DxKSD/CpdCHE3DKAzAiri3GVc90
11 +OJAszYHlje4/maVIOayGROVET3xa5cbtRJl8IBgmqhMywtz4hhY/XZTvdEn290aL
12 +857Hk7JjogA7mLKi07yKzknMxHV+k6JX7xJEttkcNQRFHONWZG1T4mRY1Drh6VbJ
13 +Gb+0GNIldNLQqigkfwIDAQABo1AwTjAMBgNVHRMEBTADAQH/MB0GA1UdDgQWBBTp
14 +Z30QdMGarrhMPwk+HHAV3R8aTzAfBgNVHSMEGDAWgBQY+tYjuY9dXRN9Po+okcfZ
15 +YcAXLjANBgkqhkiG9w0BAQsFAAOCAQEAgVUsOf9rdHlQDw4clP8GMY7QahfXbvd8
16 +8o++P18KeInQXH6+sCg0axZXzhOmKwn+Ina3EsOP7xk4aKIYwJ4A1xBuT7fKxquQ
17 +pbJyjkEBsNRVLC9t4gOA0FC791v5bOCZjyff5uN+hy8r0828nVxha6CKLqwrPd+E
18 +mC7DtilSZIgO2vwbTBL6ifmw9n1dd/Bl8Wdjnl7YJqTIf0Ozc2SZSMRUq9ryn4Wq
19 +YrjRl8NwioGb1LfjEJ0wJi2ngL3IgaN94qmDn10OJs8hlsufwP1n+Bca3fsl0m5U
20 +gUMG+CXxbF0kdCKZ9kQb1MJE4vOk6zfyBGQndmQnxHjt5botI/xpXg==
21 +-----END CERTIFICATE-----
1 +
2 +package Text::Template::Preprocess;
3 +use Text::Template;
4 +@ISA = qw(Text::Template);
5 +$Text::Template::Preprocess::VERSION = 1.46;
6 +
7 +sub fill_in {
8 + my $self = shift;
9 + my (%args) = @_;
10 + my $pp = $args{PREPROCESSOR} || $self->{PREPROCESSOR} ;
11 + if ($pp) {
12 + local $_ = $self->source();
13 +# print "# fill_in: before <$_>\n";
14 + &$pp;
15 +# print "# fill_in: after <$_>\n";
16 + $self->set_source_data($_);
17 + }
18 + $self->SUPER::fill_in(@_);
19 +}
20 +
21 +sub preprocessor {
22 + my ($self, $pp) = @_;
23 + my $old_pp = $self->{PREPROCESSOR};
24 + $self->{PREPROCESSOR} = $pp if @_ > 1; # OK to pass $pp=undef
25 + $old_pp;
26 +}
27 +
28 +1;
29 +
30 +
31 +=head1 NAME
32 +
33 +Text::Template::Preprocess - Expand template text with embedded Perl
34 +
35 +=head1 VERSION
36 +
37 +This file documents C<Text::Template::Preprocess> version B<1.46>
38 +
39 +=head1 SYNOPSIS
40 +
41 + use Text::Template::Preprocess;
42 +
43 + my $t = Text::Template::Preprocess->new(...); # identical to Text::Template
44 +
45 + # Fill in template, but preprocess each code fragment with pp().
46 + my $result = $t->fill_in(..., PREPROCESSOR => \&pp);
47 +
48 + my $old_pp = $t->preprocessor(\&new_pp);
49 +
50 +=head1 DESCRIPTION
51 +
52 +C<Text::Template::Preprocess> provides a new C<PREPROCESSOR> option to
53 +C<fill_in>. If the C<PREPROCESSOR> option is supplied, it must be a
54 +reference to a preprocessor subroutine. When filling out a template,
55 +C<Text::Template::Preprocessor> will use this subroutine to preprocess
56 +the program fragment prior to evaluating the code.
57 +
58 +The preprocessor subroutine will be called repeatedly, once for each
59 +program fragment. The program fragment will be in C<$_>. The
60 +subroutine should modify the contents of C<$_> and return.
61 +C<Text::Template::Preprocess> will then execute contents of C<$_> and
62 +insert the result into the appropriate part of the template.
63 +
64 +C<Text::Template::Preprocess> objects also support a utility method,
65 +C<preprocessor()>, which sets a new preprocessor for the object. This
66 +preprocessor is used for all subsequent calls to C<fill_in> except
67 +where overridden by an explicit C<PREPROCESSOR> option.
68 +C<preprocessor()> returns the previous default preprocessor function,
69 +or undefined if there wasn't one. When invoked with no arguments,
70 +C<preprocessor()> returns the object's current default preprocessor
71 +function without changing it.
72 +
73 +In all other respects, C<Text::Template::Preprocess> is identical to
74 +C<Text::Template>.
75 +
76 +=head1 WHY?
77 +
78 +One possible purpose: If your files contain a lot of JavaScript, like
79 +this:
80 +
81 +
82 + Plain text here...
83 + { perl code }
84 + <script language=JavaScript>
85 + if (br== "n3") {
86 + // etc.
87 + }
88 + </script>
89 + { more perl code }
90 + More plain text...
91 +
92 +You don't want C<Text::Template> to confuse the curly braces in the
93 +JavaScript program with executable Perl code. One strategy:
94 +
95 + sub quote_scripts {
96 + s(<script(.*?)</script>)(q{$1})gsi;
97 + }
98 +
99 +Then use C<PREPROCESSOR =E<gt> \&quote_scripts>. This will transform
100 +
101 +
102 +
103 +=head1 SEE ALSO
104 +
105 +L<Text::Template>
106 +
107 +=head1 AUTHOR
108 +
109 +
110 +Mark Jason Dominus, Plover Systems
111 +
112 +Please send questions and other remarks about this software to
113 +C<mjd-perl-template+@plover.com>
114 +
115 +You can join a very low-volume (E<lt>10 messages per year) mailing
116 +list for announcements about this package. Send an empty note to
117 +C<mjd-perl-template-request@plover.com> to join.
118 +
119 +For updates, visit C<http://www.plover.com/~mjd/perl/Template/>.
120 +
121 +=head1 LICENSE
122 +
123 + Text::Template::Preprocess version 1.46
124 + Copyright 2013 Mark Jason Dominus
125 +
126 + This program is free software; you can redistribute it and/or
127 + modify it under the terms of the GNU General Public License as
128 + published by the Free Software Foundation; either version 2 of the
129 + License, or (at your option) any later version. You may also can
130 + redistribute it and/or modify it under the terms of the Perl
131 + Artistic License.
132 +
133 + This program is distributed in the hope that it will be useful,
134 + but WITHOUT ANY WARRANTY; without even the implied warranty of
135 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
136 + GNU General Public License for more details.
137 +
138 + You should have received copies of the GNU General Public License
139 + along with this program; if not, write to the Free Software
140 + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
141 +
142 +
143 +=cut
144 +