AnsiPalette is yet another terminal coloring gem. I have never been satisfied with the various coloring gems, for one reason or another, and never knew the details of how each worked.
Goals of this Gem:
- Help me understand more about ANSI escape characters
- Create code the makes it easy to understand how ANSI escape charactors are used
- Create a simple and usable API for coloring strings
Add this line to your application's Gemfile:
gem 'ansi_palette'
And then execute:
$ bundle
Or install it yourself as:
$ gem install ansi_palette
include AnsiPalette
puts Red("hello")
header = <<-HEADER
A Classy Comment Header
HEADER
body = <<-BODY
Some very interesting comment text.
With all these intricate details.
Explaining everything you could ever
want to know.
BODY
doc = <<-DOC
#{Red(header)}
#{Cyan(body)}
DOC
puts doc
color = Blue("Header")
puts color
color = Red("Header")
color.bold = true
puts color
color = Yellow("Header")
color.bold = true
color.blink = true
puts color
color = Yellow("Header")
color.bold = true
color.blink = true
color.modifier = 3
puts color
color = Cyan("Header")
color.bold = true
color.modifier = 4
puts color
color = Red("Header")
color.inverse_colors = true
color.bold
puts color
# You can also you use the ColoredString class
colored_string = AnsiPalette::ColoredString.new(string: "hello")
colored_string.color = :red
puts colored_string
colored_string.background_color = :yellow
puts colored_string
colored_string.bold = true
puts colored_string
colored_string.blink = true
puts colored_string
colored_string.underline = true
puts colored_string
colored_string.inverse_colors = true
puts colored_string
colored_string.reset!
puts colored_string
Create yet another ANSI String gem but also: * The ability to create nested styled strings * The ability to easily compoud ANSI effects * No monkey patching on String * A codebase that explains how ANSI escape characters are used
- Fork it ( https://github.com/[my-github-username]/ansi_palette/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request