Presenter: escape_js() zum Escapen von JavaScript
authorMoritz Bunkus <m.bunkus@linet-services.de>
Tue, 5 Mar 2013 12:14:00 +0000 (13:14 +0100)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Wed, 6 Mar 2013 09:23:15 +0000 (10:23 +0100)
SL/Presenter.pm

index f328cce..36acc73 100644 (file)
@@ -124,6 +124,16 @@ sub escaped_text {
   return SL::Presenter::EscapedText->new(text => $text, is_escaped => 1);
 }
 
+sub escape_js {
+  my ($self, $text) = @_;
+
+  $text =~ s|\\|\\\\|g;
+  $text =~ s|\"|\\\"|g;
+  $text =~ s|\n|\\n|g;
+
+  return SL::Presenter::EscapedText->new(text => $text, is_escaped => 1);
+}
+
 1;
 
 __END__
@@ -290,6 +300,16 @@ It is safe to call C<escaped_text> on an instance of
 L<SL::Presenter::EscapedText>. This is a no-op (the same instance will
 be returned).
 
+=item C<escape_js $text>
+
+Returns a JavaScript-escaped version of C<$text>. Instead of a string
+an instance of the thin proxy-object L<SL::Presenter::EscapedText> is
+returned.
+
+It is safe to call C<escape> on an instance of
+L<SL::Presenter::EscapedText>. This is a no-op (the same instance will
+be returned).
+
 =item C<get_template>
 
 Returns the global instance of L<Template> and creates it if it