aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--perllib/FixMyStreet/Template/Variable.pm8
-rw-r--r--t/template.t6
2 files changed, 11 insertions, 3 deletions
diff --git a/perllib/FixMyStreet/Template/Variable.pm b/perllib/FixMyStreet/Template/Variable.pm
index 9b5a0fcc4..0142a4db5 100644
--- a/perllib/FixMyStreet/Template/Variable.pm
+++ b/perllib/FixMyStreet/Template/Variable.pm
@@ -8,13 +8,15 @@ sub op_factory {
my ($op) = @_;
return eval q|sub {
- my ($self, $str) = @_;
+ my ($self, $str, $swapped) = @_;
if ( ref $str eq __PACKAGE__) {
- return $self->{value} | . $op . q| $str->{value};
+ return $self->{value} | . $op . q| $str->{value} unless $swapped;
+ return $str->{value} | . $op . q| $self->{value};
}
else {
- return $self->{value} | . $op . q| $str;
+ return $self->{value} | . $op . q| $str unless $swapped;
+ return $str | . $op . q| $self->{value};
}
}|;
}
diff --git a/t/template.t b/t/template.t
index 1763a7f12..91e4ccc84 100644
--- a/t/template.t
+++ b/t/template.t
@@ -30,4 +30,10 @@ $tt->process(\'H: [% s.split(":").join(",") %]', {
}, \$output);
is $output, 'H: 1,sp<i>l</i>it,3';
+$output = '';
+$tt->process(\'[% size %] [% 100 / size %] [% size / 100 %]', {
+ size => 4
+}, \$output);
+is $output, '4 25 0.04';
+
done_testing;