diff options
author | Jesse Luehrs <doy@tozt.net> | 2012-10-05 12:31:26 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2012-10-05 12:38:34 -0500 |
commit | e8a83edb85216a9f6978a99c77cc196db5cb4c44 (patch) | |
tree | 2c59f9ef7ecdbf87919093812576ca9872e4520d /t/block-helpers.t | |
parent | 9191972488f91494a77025d27a2150a202dd0c1c (diff) | |
download | text-handlebars-e8a83edb85216a9f6978a99c77cc196db5cb4c44.tar.gz text-handlebars-e8a83edb85216a9f6978a99c77cc196db5cb4c44.zip |
implement {{^}} as an alias for {{else}}
Diffstat (limited to 't/block-helpers.t')
-rw-r--r-- | t/block-helpers.t | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/t/block-helpers.t b/t/block-helpers.t index 961b2dc..ac6f54f 100644 --- a/t/block-helpers.t +++ b/t/block-helpers.t @@ -375,4 +375,98 @@ RENDERED ); } +render_ok( + { + function => { + list => sub { + my ($context, $items, $options) = @_; + + if (@$items) { + my $out = '<ul>'; + for my $item (@$items) { + $out .= '<li>'; + $out .= $options->{fn}->($item); + $out .= '</li>'; + } + $out .= '</ul>'; + return $out; + } + else { + return '<p>' . $options->{inverse}->($context) . '</p>'; + } + }, + }, + }, + q[{{#list people}}{{name}}{{^}}<em>Nobody's here</em>{{/list}}], + { + people => [ + { name => 'Alan' }, + { name => 'Yehuda' }, + ], + }, + q[<ul><li>Alan</li><li>Yehuda</li></ul>], + "helper with inverse" +); + +render_ok( + { + function => { + list => sub { + my ($context, $items, $options) = @_; + + if (@$items) { + my $out = '<ul>'; + for my $item (@$items) { + $out .= '<li>'; + $out .= $options->{fn}->($item); + $out .= '</li>'; + } + $out .= '</ul>'; + return $out; + } + else { + return '<p>' . $options->{inverse}->($context) . '</p>'; + } + }, + }, + }, + q[{{#list people}}{{name}}{{^}}<em>Nobody's here</em>{{/list}}], + { + people => [], + }, + q[<p><em>Nobody's here</em></p>], + "helper with inverse (empty)" +); + +render_ok( + { + function => { + list => sub { + my ($context, $items, $options) = @_; + + if (@$items) { + my $out = '<ul>'; + for my $item (@$items) { + $out .= '<li>'; + $out .= $options->{fn}->($item); + $out .= '</li>'; + } + $out .= '</ul>'; + return $out; + } + else { + return '<p>' . $options->{inverse}->($context) . '</p>'; + } + }, + }, + }, + q[{{#list people}}Hello{{^}}{{message}}{{/list}}], + { + people => [], + message => "Nobody's here", + }, + q[<p>Nobody's here</p>], + "helper with inverse (inverse has variables)" +); + done_testing; |