aboutsummaryrefslogtreecommitdiffstats
path: root/actionview/lib/action_view/template/html.rb
diff options
context:
space:
mode:
authorPrem Sichanugrist <s@sikac.hu>2014-02-14 09:57:47 -0500
committerPrem Sichanugrist <s@sikac.hu>2014-02-18 12:08:36 -0500
commit920f3ba2668e0622335f16f2f1318d9e6b5e6b28 (patch)
treed7daebde559c09c6d319510d1ed375f9fb96f74c /actionview/lib/action_view/template/html.rb
parent8cd9f6d205e5db5331dd5b01be35b537da17cdee (diff)
downloadrails-920f3ba2668e0622335f16f2f1318d9e6b5e6b28.tar.gz
rails-920f3ba2668e0622335f16f2f1318d9e6b5e6b28.tar.bz2
rails-920f3ba2668e0622335f16f2f1318d9e6b5e6b28.zip
Introduce `render :html` for render HTML string
This is an option for to HTML content with a content type of `text/html`. This rendering option calls `ERB::Util.html_escape` internally to escape unsafe HTML string, so you will have to mark your string as html safe if you have any HTML tag in it. Please see #12374 for more detail.
Diffstat (limited to 'actionview/lib/action_view/template/html.rb')
-rw-r--r--actionview/lib/action_view/template/html.rb34
1 files changed, 34 insertions, 0 deletions
diff --git a/actionview/lib/action_view/template/html.rb b/actionview/lib/action_view/template/html.rb
new file mode 100644
index 0000000000..282da1a8a2
--- /dev/null
+++ b/actionview/lib/action_view/template/html.rb
@@ -0,0 +1,34 @@
+module ActionView #:nodoc:
+ # = Action View HTML Template
+ class Template
+ class HTML #:nodoc:
+ attr_accessor :type
+
+ def initialize(string, type = nil)
+ @string = string.to_s
+ @type = Types[type] || type if type
+ @type ||= Types[:html]
+ end
+
+ def identifier
+ 'html template'
+ end
+
+ def inspect
+ 'html template'
+ end
+
+ def to_str
+ ERB::Util.h(@string)
+ end
+
+ def render(*args)
+ to_str
+ end
+
+ def formats
+ [@type.to_sym]
+ end
+ end
+ end
+end