From: Gavin Sinclair Date: 2004-09-15T14:08:14+09:00 Subject: Colourize your Ruby output ------=_20040915010805_98876 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Folks, The attached GIF shows a console session where a buggy Ruby program is run and an exception unceremoniously dumped to STDERR. The difference is that it's syntax highlighted. Ian Macdonald's 'acoc' does all the heavy lifting; the following entry in my ~/.acoc.conf does the rest: # Highlight Ruby source files, etc., when there's an exception. [ruby/er] # message and error class /:\d+:in `.*?': (.*) \((.+)\)\s*$/ bold,red+bold # file name and line number /^(?:\s+from)?(.*?):(\d+)/ green+bold,yellow+bold # method name /:in `(.*?)'/ cyan+bold Pretty handy. 'acoc' relies on term-ansicolor and likes to have 'tpty'. I'll try to gem all these up soon to make them easy to install. I'm sure Mauricio will do the same for RPA :) Hope this helps, and hope someone will improve it. Cheers, Gavin ------=_20040915010805_98876 Content-Type: image/gif; name="ruby-colour.GIF" Content-Disposition: attachment; filename="ruby-colour.GIF" Content-Transfer-Encoding: base64 R0lGODlhGQO+APcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD/AP//AAAA//8A/wD/ /////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA/wAzAAAzMwAzZgAzmQAzzAAz/wBm AABmMwBmZgBmmQBmzABm/wCZAACZMwCZZgCZmQCZzACZ/wDMAADMMwDMZgDMmQDMzADM/wD/AAD/ MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMzADMzMzMzZjMzmTMzzDMz/zNmADNmMzNm ZjNmmTNmzDNm/zOZADOZMzOZZjOZmTOZzDOZ/zPMADPMMzPMZjPMmTPMzDPM/zP/ADP/MzP/ZjP/ mTP/zDP//2YAAGYAM2YAZmYAmWYAzGYA/2YzAGYzM2YzZmYzmWYzzGYz/2ZmAGZmM2ZmZmZmmWZm zGZm/2aZAGaZM2aZZmaZmWaZzGaZ/2bMAGbMM2bMZmbMmWbMzGbM/2b/AGb/M2b/Zmb/mWb/zGb/ /5kAAJkAM5kAZpkAmZkAzJkA/5kzAJkzM5kzZpkzmZkzzJkz/5lmAJlmM5lmZplmmZlmzJlm/5mZ AJmZM5mZZpmZmZmZzJmZ/5nMAJnMM5nMZpnMmZnMzJnM/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwA M8wAZswAmcwAzMwA/8wzAMwzM8wzZswzmcwzzMwz/8xmAMxmM8xmZsxmmcxmzMxm/8yZAMyZM8yZ ZsyZmcyZzMyZ/8zMAMzMM8zMZszMmczMzMzM/8z/AMz/M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8A mf8AzP8A//8zAP8zM/8zZv8zmf8zzP8z//9mAP9mM/9mZv9mmf9mzP9m//+ZAP+ZM/+ZZv+Zmf+Z zP+Z///MAP/MM//MZv/Mmf/MzP/M////AP//M///Zv//mf//zP///yH5BAEAABAALAAAAAAZA74A AAj/AFEIHEiwoMGDCBMqXMiwocOHECNKnEjxoSBQFytq3Mixo8ePIEOKHEmypMmTKFOqPDmN2sqX MGPKnEmzps2bOHPq3Mmzp01n03wKHUq0qNGjSJMqXcpUKTVYT51xdNm0qtWrWLNq3cq1a01YQT2C 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 ADs= ------=_20040915010805_98876--