Class: String
- Inherits:
-
Object
- Object
- String
- Defined in:
- lib/dom.rb
Direct Known Subclasses
Constant Summary collapse
- AnsiColor =
{ "1" => "bold", "4" => "underline", "30" => "black", "31" => "red", "32" => "green", "33" => "yellow", "34" => "blue", "35" => "magenta", "36" => "cyan", "37" => "white", "40" => "bg-black", "41" => "bg-red", "42" => "bg-green", "43" => "bg-yellow", "44" => "bg-blue", "45" => "bg-magenta", "46" => "bg-cyan", "47" => "bg-white", }
Instance Method Summary collapse
- #ansi2html ⇒ Object
- #dom(tag, attr = {}) ⇒ Object
- #escape_html(tag = nil) ⇒ Object
- #escaped ⇒ Object
- #jsonml(tag, attr = nil) ⇒ Object
Instance Method Details
#ansi2html ⇒ Object
67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/dom.rb', line 67 def ansi2html ansi = StringScanner.new(self) html = StringIO.new until ansi.eos? if ansi.scan(/\e\[0?m/) html.print(%{</span>}.freeze) elsif ansi.scan(/\e\[0?(\d+)m/) html.print(%{<span class="#{AnsiColor[ansi[1]]}">}) else html.print(ansi.scan(/./m)) end end html.string end |
#dom(tag, attr = {}) ⇒ Object
37 38 39 40 41 |
# File 'lib/dom.rb', line 37 def dom tag, attr = {} "<#{Dom.hyphenize(tag)}#{Dom.attr(attr)}>"\ "#{escape_html(tag).ansi2html}"\ "</#{Dom.hyphenize(tag)}>".escaped end |
#escape_html(tag = nil) ⇒ Object
42 43 44 |
# File 'lib/dom.rb', line 42 def escape_html tag = nil case tag; when :style, :script then self else CGI.escapeHTML(self) end end |
#escaped ⇒ Object
45 |
# File 'lib/dom.rb', line 45 def escaped; DomString.new(self) end |