Skip to content

Commit

Permalink
cleaned up tag helpers
Browse files Browse the repository at this point in the history
  • Loading branch information
kraih committed Oct 22, 2010
1 parent 596a322 commit 088333f
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 73 deletions.
2 changes: 2 additions & 0 deletions Changes
@@ -1,6 +1,8 @@
This file documents the revision history for Perl extension Mojolicious.

0.999931 2010-10-19 00:00:00
- Removed tag helpers label and img.
- Renamed tag helper script to javascript and added CDATA support.
- Added before and after methods to Mojo::DOM.
- Hide command overview from prove. (omega)
- Default to silent tests in Test::Mojo.
Expand Down
87 changes: 34 additions & 53 deletions lib/Mojolicious/Plugin/TagHelpers.pm
Expand Up @@ -59,15 +59,34 @@ sub register {
}
);

# Add "img" helper
$app->helper(img => sub { shift; $self->_tag('img', src => shift, @_) });

# Add "input" helper
$app->helper(input => sub { $self->_input(@_) });

# Add "label" helper
# Add "javascript" helper
$app->helper(
label => sub { shift; $self->_tag('label', for => shift, @_) });
javascript => sub {
my $c = shift;

# CDATA
my $cb;
my $old = $cb = pop if ref $_[-1] && ref $_[-1] eq 'CODE';
$cb = sub { '<![CDATA[' . $old->() . ']]>' }
if $cb;

# Path
if (@_ % 2 ? ref $_[-1] ne 'CODE' : ref $_[-1] eq 'CODE') {
return $self->_tag(
'script',
src => shift,
type => 'text/javascript',
@_
);
}

# Block
$self->_tag('script', type => 'text/javascript', @_, $cb);
}
);

# Add "link_to" helper
$app->helper(
Expand Down Expand Up @@ -162,26 +181,6 @@ sub register {
}
);

# Add "script" helper
$app->helper(
script => sub {
my $c = shift;

# Path
if (@_ % 2 ? ref $_[-1] ne 'CODE' : ref $_[-1] eq 'CODE') {
return $self->_tag(
'script',
src => shift,
type => 'text/javascript',
@_
);
}

# Block
$self->_tag('script', type => 'text/javascript', @_);
}
);

# Add "submit_button" helper
$app->helper(
submit_button => sub {
Expand Down Expand Up @@ -378,16 +377,6 @@ Note that this helper is EXPERIMENTAL and might change without warning!
<input name="foo" type="hidden" value="bar" />
<input id="bar" name="foo" type="hidden" value="bar" />
=item img
<%= img '/foo.jpg' %>
<%= img '/foo.jpg', alt => 'Image' %>
Generate image tag.
<img src="/foo.jpg" />
<img alt="Image" src="/foo.jpg" />
=item input
<%= input 'first_name' %>
Expand All @@ -402,13 +391,19 @@ Generate form input element.
<input name="employed" type="checkbox" />
<input name="country" type="radio" value="germany" />
=item label
=item javascript
<%= label first_name => begin %>First name<% end %>
<%= javascript '/script.js' %>
<%= javascript begin %>
var a = 'b';
<% end %>
Generate form label.
Generate script tag.
<label for="first_name">First name</label>
<script src="/script.js" type="text/javascript" />
<script type="text/javascript">
var a = 'b';
</script>
=item link_to
Expand Down Expand Up @@ -482,20 +477,6 @@ Note that this helper is EXPERIMENTAL and might change without warning!
</optgroup>
</select>
=item script
<%= script '/script.js' %>
<%= script begin %>
var a = 'b';
<% end %>
Generate script tag.
<script src="/script.js" type="text/javascript" />
<script type="text/javascript">
var a = 'b';
</script>
=item submit_button
<%= submit_button %>
Expand Down
31 changes: 11 additions & 20 deletions t/mojolicious/lite_app.t
Expand Up @@ -833,21 +833,18 @@ $t->get_ok('/tags/lala?a=b&b=0&c=2&d=3&escaped=1%22+%222')->status_is(200)
<input id="bar" type="submit" value="Ok too!" />
</form>
<form action="/">
<label for="foo">Name</label>
<input name="foo" />
</form>
<input name="escaped" value="1&quot; &quot;2" />
<input name="a" value="b" />
<input name="a" value="b" />
<script src="/script.js" type="text/javascript" />
<script type="text/javascript">
<script type="text/javascript"><![CDATA[
var a = 'b';
</script>
<script type="foo">
]]></script>
<script type="foo"><![CDATA[
var a = 'b';
</script>
<img src="/foo.jpg" />
<img alt="image" src="/foo.jpg" />
]]></script>
EOF

# GET /tags (alternative)
Expand Down Expand Up @@ -877,21 +874,18 @@ $t->get_ok('/tags/lala?c=b&d=3&e=4&f=5')->status_is(200)->content_is(<<EOF);
<input id="bar" type="submit" value="Ok too!" />
</form>
<form action="/">
<label for="foo">Name</label>
<input name="foo" />
</form>
<input name="escaped" />
<input name="a" />
<input name="a" value="c" />
<script src="/script.js" type="text/javascript" />
<script type="text/javascript">
<script type="text/javascript"><![CDATA[
var a = 'b';
</script>
<script type="foo">
]]></script>
<script type="foo"><![CDATA[
var a = 'b';
</script>
<img src="/foo.jpg" />
<img alt="image" src="/foo.jpg" />
]]></script>
EOF

# GET /selection (empty)
Expand Down Expand Up @@ -1599,21 +1593,18 @@ controller and action!
%= submit_button 'Ok too!', id => 'bar'
%= end
<%= form_for '/' => begin %>
<%= label 'foo' => begin %>Name<% end %>
<%= input 'foo' %>
<% end %>
<%= input 'escaped' %>
<%= input 'a' %>
<%= input 'a', value => 'c' %>
<%= script '/script.js' %>
<%= script begin %>
<%= javascript '/script.js' %>
<%= javascript begin %>
var a = 'b';
<% end %>
<%= script type => 'foo' => begin %>
<%= javascript type => 'foo' => begin %>
var a = 'b';
<% end %>
<%= img '/foo.jpg' %>
<%= img '/foo.jpg', alt => 'image' %>
@@ selection.html.ep
%= form_for selection => begin
Expand Down

0 comments on commit 088333f

Please sign in to comment.