Ansible is an attempt at an ANSI-escape to HTML conversion tool that's fast enough to use on large input. Particularly, it's meant to be significantly faster than the ansi-sys gem for large input text.
Install the gem:
gem install ansible
Here's an example of using Ansible in a rails controller:
require 'ansible' class TextController << ApplicationController include Ansible def show rawtext = Text.find(params[:id]) @text = ansi_escaped(rawtext) end end
Ansible will convert escapes into HTML
<span> tags that apply sensible
classes that correspond to ANSI escape directives, like:
You can control the display of these with CSS however you please.
For input beyond a certain size (default 65535 characters), Ansible will automatically fall back to simply stripping escapes entirely. You can control this threshold when you call ansi_escaped:
class Helper include Ansible def handle_escaped(rawtext) ansi_escaped(h(rawtext), 32768).html_safe end end
What's with the name Ansible?
An ansible is a fictional faster than light communication device.
We welcome fixes and enhancements. Feel free to fork on github and submit a pull request.