Module: Vanity::Render
- Included in:
- Commands
- Defined in:
- lib/vanity/commands/report.rb
Overview
Render method available to templates (when used by Vanity command line, outside Rails).
Defined Under Namespace
Classes: ProxyEmpty
Instance Method Summary collapse
-
#method_missing(method, *args, &block) ⇒ Object
prevent certain url helper methods from failing so we can run erb templates outside of rails for reports.
-
#render(path_or_options, locals = {}) ⇒ Object
Render the named template.
-
#vanity_h(html) ⇒ Object
Escape HTML.
- #vanity_html_safe(text) ⇒ Object
-
#vanity_simple_format(text, options = {}) ⇒ Object
Dumbed down from Rails’ simple_format.
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args, &block) ⇒ Object
prevent certain url helper methods from failing so we can run erb templates outside of rails for reports.
36 37 38 |
# File 'lib/vanity/commands/report.rb', line 36 def method_missing(method, *args, &block) %w(url_for flash).include?(method.to_s) ? ProxyEmpty.new : super end |
Instance Method Details
#render(path_or_options, locals = {}) ⇒ Object
Render the named template. Used for reporting and the dashboard.
11 12 13 14 15 16 17 18 19 20 |
# File 'lib/vanity/commands/report.rb', line 11 def render(, locals = {}) if .respond_to?(:keys) render_erb( [:file] || [:partial], [:locals] ) else render_erb(, locals) end end |
#vanity_h(html) ⇒ Object
Escape HTML.
23 24 25 |
# File 'lib/vanity/commands/report.rb', line 23 def vanity_h(html) CGI.escapeHTML(html.to_s) end |
#vanity_html_safe(text) ⇒ Object
27 28 29 |
# File 'lib/vanity/commands/report.rb', line 27 def vanity_html_safe(text) text end |
#vanity_simple_format(text, options = {}) ⇒ Object
Dumbed down from Rails’ simple_format.
41 42 43 44 45 46 47 |
# File 'lib/vanity/commands/report.rb', line 41 def vanity_simple_format(text, ={}) open = "<p #{.map { |k,v| "#{k}=\"#{CGI.escapeHTML v}\"" }.join(" ")}>" text = open + text.gsub(/\r\n?/, "\n"). # \r\n and \r -> \n gsub(/\n\n+/, "</p>\n\n#{open}"). # 2+ newline -> paragraph gsub(/([^\n]\n)(?=[^\n])/, '\1<br />') + # 1 newline -> br "</p>" end |