PictureFrame
Draw predefined or custom frames around text.
Installation
Add this line to your application's Gemfile:
gem 'picture_frame'
And then execute:
$ bundle
Or install it yourself as:
$ gem install picture_frame
Usage
> f = PictureFrame.create
> puts f.frame('Hello, World!')
+---------------+
| Hello, World! |
+---------------+
> f = PictureFrame.create(:stars)
> puts f.frame('Hello, World!')
*****************
* Hello, World! *
*****************
puts PictureFrame.create(:random).frame('Surprise!')
⌜           ⌝
  Surprise!
⌞           ⌟
> f = PictureFrame.create("-- * --", :placeholder => '*')
> puts f.frame('Just a line')
-- Just a line --
Showcase
> PictureFrame.showcase("Hello, World!")
:default
+---------------+
| Hello, World! |
+---------------+
:stars
*****************
* Hello, World! *
*****************
:slashes
///////////////////
// Hello, World! //
///////////////////
:hashes
#################
# Hello, World! #
#################
:ornate
%=---------------=%
∥                 ∥
|  Hello, World!  |
∥                 ∥
%=---------------=%
:ephemeral
⌜               ⌝
  Hello, World!
⌞               ⌟
:box
  +-----------------+
 /                 /|
+-----------------+ |
|                 | |
|  Hello, World!  | |
|                 | +
|                 |/
+-----------------+
> PictureFrame.showcase("Hello\nWorld")
:default
+-------+
| Hello |
| World |
+-------+
:stars
*********
* Hello *
* World *
*********
:slashes
///////////
// Hello //
// World //
///////////
:hashes
#########
# Hello #
# World #
#########
:ornate
%=-------=%
∥         ∥
|  Hello  |
|  World  |
∥         ∥
%=-------=%
:ephemeral
⌜       ⌝
  Hello
  World
⌞       ⌟
:box
  +---------+
 /         /|
+---------+ |
|         | |
|  Hello  | |
|  World  | |
|         | +
|         |/
+---------+
Contributing
- Fork it
 - Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Added some feature') - Push to the branch (
git push origin my-new-feature) - Create new Pull Request
 
TODO
- Ensure that multibyte characters work properly
 - Support ANSI colors.