README.md in pastel-0.2.1 vs README.md in pastel-0.3.0
- old
+ new
@@ -11,10 +11,12 @@
**Pastel** is minimal and focused to work in all terminal emulators.
![screenshot](https://github.com/peter-murach/pastel/raw/master/assets/screenshot.png)
+**Pastel** provides independent coloring component for [TTY](https://github.com/peter-murach/tty) toolkit.
+
## Features
* Doesn't monkey patch `String`
* Intuitive and expressive API
* Minimal and focused to work on all terminal emulators
@@ -43,11 +45,13 @@
* [2.2 Decorate](#22-decorate)
* [2.3 Strip](#23-strip)
* [2.4 Styles](#24-styles)
* [2.5 Valid?](#25-valid)
* [2.6 Enabled?](#26-enabled)
-* [3. The available styles](#3-the-available-styles)
+ * [2.7 Alias Color](#27-alias-color)
+* [3. Supported Colors](#3-supported-colors)
+* [4. Environment](#4-environment)
## 1 Usage
**Pastel** provides a simple, minimal and intuitive API for styling your strings:
@@ -89,23 +93,25 @@
```ruby
pastel.red('Unicorns ', pastel.bold.underline('everywhere'), '!')
```
-Please refer to [3. The available styles](#3-the-available-styles) section for full list of supported styles.
+Please refer to [3. Supported Colors](#3-supported-colors) section for full list of supported styles.
### 2.2 Decorate
This method is a lower level string styling call that takes as the first argument the string to style and any number of attributes, and returns string wrapped in styles.
```ruby
pastel.decorate('Unicorn', :green, :on_blue, :bold)
```
+This method will be useful in situations where colors are provided as a list of parameters.
+
### 2.3 Strip
-Strip all color sequence characters:
+Strip all color sequence characters from the provided strings. The return value will be eithre array of modified strings or a single string. The arguments are not modified.
```ruby
pastel.strip("\e[1m\e[34mbold blue text\e[0m"") # => "bold blue text"
```
@@ -117,15 +123,15 @@
pastel.styles
```
### 2.5 Valid?
-Determine whether a color is valid:
+Determine whether a color or a list of colors are valid. `valid?` takes one or more attribute strings or symbols and returns true if all attributes are known and false otherwise.
```ruby
-pastel.valid?(:red) # => true
-pastel.valid?(:unicorn) # => false
+pastel.valid?(:red, :blue) # => true
+pastel.valid?(:unicorn) # => false
```
### 2.6 Enabled?
In order to detect if your terminal supports coloring do:
@@ -139,12 +145,32 @@
```ruby
pastel = Pastel.new(enabled: true)
pastel.enabled? # => false
```
-## 3 The available styles
+### 2.7 Alias Color
+In order to setup an alias for the standard color do:
+
+```ruby
+pastel.alias_color(:funky, :red)
+```
+
+From that point forward, `:funky` alias can be passed to `decorate`, `valid?` with the same meaning as standard color:
+
+```ruby
+pastel.funky.on_green('unicorn') # => will use :red color
+```
+
+This method allows you to give more meaningful names to existing colors.
+
+You can also use the `PASTEL_COLORS_ALIASES` environment variable (see [Environment](#4-environment)) to specify aliases.
+
+Note: Aliases are global and affect all callers in the same process.
+
+## 3 Supported Colors
+
**Pastel** works with terminal emulators that support minimum sixteen colors. It provides `16` basic colors and `8` styles with further `16` bright color pairs. The corresponding bright color is obtained by prepending the `bright` to the normal color name. For example, color `red` will have `bright_red` as its pair.
The variant with `on_` prefix will style the text background color.
The foreground colors:
@@ -194,12 +220,24 @@
* `underline`
* `inverse`
* `hidden`
* `strikethrough`
+## 4 Environment
+
+### 4.1 PASTEL_COLORS_ALIASES
+
+This environment variable allows you to specify custom color aliases at runtime that will be understood by **Pastel**. The environment variable is read and used when the instance of **Pastel** is created. You can also use `alias_color` to create aliases.
+
+Only alphanumeric and `_` are allowed in the alias names with the following format:
+
+```ruby
+PASTEL_COLORS_ALIASES='newcolor_1=red,newcolor_2=on_gree'
+```
+
## Contributing
-1. Fork it ( https://github.com/[my-github-username]/pastel/fork )
+1. Fork it ( https://github.com/peter-murach/pastel/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