ANSI
The ANSI project is a collection of ANSI escape code related libraries enabling ANSI code based colorization and stylization of output. It is very nice for beautifying shell output.
This collection is based on a set of scripts spun-off from Ruby Facets. Included are Code (used to be ANSICode), Logger, ProgressBar and String. In addition the library includes Terminal which provides information about the current output device.
Features
- ANSI::Code provides ANSI codes as module functions.
- String#ansi makes common usage very easy and elegant.
- ANSI::Mixin provides an alternative mixin (like +colored+ gem).
- Very Good coverage of standard ANSI codes.
- Additional clases for colorized columns, tables, loggers and more.
Synopsis
There are a number of modules and classes provided by the ANSI package. To get a good understanding of them it is best to pursue the QED documents or the API documentation.
At the heart of all the provided libraries lies the ANSI::Code module which defines ANSI codes as constants and methods. For example:
require 'ansi/code'
ANSI.red + "Hello" + ANSI.blue + "World"
=> "\e[31mHello\e[34mWorld"
Or in block form.
ANSI.red{ "Hello" } + ANSI.blue{ "World" }
=> "\e[31mHello\e[0m\e[34mWorld\e[0m"
The methods defined by this module are used throughout the rest of the system.
Installation
Bundler
Add the usual gem
line to your project's Gemfile
.
gem 'ansi'
And run then bundle
command.
RubyGems
To install with RubyGems simply open a console and type:
$ sudo gem install ansi
Setup.rb (not recommended)
Local installation requires Setup.rb (gem install setup), then download the tarball package and type:
$ tar -xvzf ansi-1.0.0.tgz
$ cd ansi-1.0.0
$ sudo setup.rb all
Windows users use 'ruby setup.rb all'.
Release Notes
Please see HISTORY.md file.
License & Copyrights
Copyright (c) 2009 Rubyworks
This program is redistributable under the terms of the FreeBSD license.
Some pieces of the code are copyrighted by others.
See LICENSE.txt and NOTICE.md files for details.