Class: Arrow::Template::EscapeDirective

Inherits:
CallDirective show all
Defined in:
lib/arrow/template/escape.rb

Overview

The Arrow::Template::EscapeDirective class, a derivative of Arrow::Template::CallDirective. This is the class which defines the behaviour of the ‘escape’ template directive., which HTML escapes the stringified version of its associated attribute/s.

Syntax

  <pre><?escape data.to_yaml?></pre>
  <?escape some_string_with_htmlish_bits?>

Authors

  • Michael Granger

Please see the file LICENSE in the top-level directory for licensing details.

Constant Summary

SVNRev =

SVN Revision

%q$Rev$
SVNId =

SVN Id

%q$Id$

Constants inherited from CallDirective

SVNId, SVNRev

Constants inherited from AttributeDirective

SVNId, SVNRev

Constants inherited from Directive

SVNId, SVNRev

Constants inherited from Node

SVNId, SVNRev

Constants included from Arrow::HTMLUtilities

ARRAY_HTML_CONTAINER, HASH_HTML_CONTAINER, HASH_PAIR_HTML, IMMEDIATE_OBJECT_HTML_CONTAINER, IVAR_HTML_FRAGMENT, OBJECT_HTML_CONTAINER, THREAD_DUMP_KEY

Instance Method Summary

Methods inherited from AttributeDirective

allows_format?, #before_rendering, #build_rendering_proc, #call_methodchain, #initialize, #inspect, #is_rendering_node?, #parse_directive_contents, #render_contents, #to_html

Methods inherited from Directive

create, derivativeDirs, #initialize, #inspect, #parse_directive_contents, #to_html

Methods inherited from Node

#add_to_template, #css_class, #initialize, #inspect, #is_rendering_node?, #to_a, #to_html, #to_s

Methods included from Arrow::HTMLUtilities

#escape_html, #make_html_for_object, #make_object_html_wrapper

Methods inherited from Arrow::Object

deprecate_class_method, deprecate_method, inherited

Methods included from Arrow::Loggable

#log

Constructor Details

This class inherits a constructor from Arrow::Template::AttributeDirective

Instance Method Details

- (Object) render(template, scope)

Render the content and return it as HTML-escaped text.



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/arrow/template/escape.rb', line 33

def render( template, scope )
  rawary = super
  rary = []

  # Try our best to skip debugging comments
  if template._config[:debuggingComments]
    rary.push( rawary.shift ) if /^<!--.*-->$/ =~ rawary.first
  end

  rawary.each do |line|
    rary << line.to_s.
      gsub( /&/, '&amp;' ).
      gsub( /</, '&lt;' ).
      gsub( />/, '&gt;' ).
      gsub( /"/, '&quot;' )
  end

  return rary
end