Skip to content

davidbegin/ansi_palette

Repository files navigation

AnsiPalette

Gem Version Build Status Test Coverage Code Climate Dependency Status Inline docs

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

Installation

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

Goals

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

Contributing

  1. Fork it ( https://github.com/[my-github-username]/ansi_palette/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

About

Yet another library for working with ANSI escape codes and Strings in Ruby

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published