Skip to content

A small collection of String helpers

License

Notifications You must be signed in to change notification settings

busyloop/cythara

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Sep 10, 2023
4fcebac Β· Sep 10, 2023

History

1 Commit
Sep 10, 2023
Sep 10, 2023
Sep 10, 2023
Sep 10, 2023
Sep 10, 2023
Sep 10, 2023
Sep 10, 2023
Sep 10, 2023
Sep 10, 2023
Sep 10, 2023
Sep 10, 2023
Sep 10, 2023
Sep 10, 2023

Repository files navigation

Cythara

CI GitHub GitHub release

A small collection of String helpers.

Features

Text formatting
  • linewrap - Wrap a String at a given width
  • wordwrap - Wrap a String to a given width at word boundaries
ANSI
  • contains_ansi? - Detect ANSI escape codes
  • strip_ansi - Strip ANSI escape codes

Installation

  1. Add the dependency to your shard.yml:

    dependencies:
      cythara:
        github: busyloop/cythara
  2. Run shards install

API


Usage

require "cythara/wrap"
Cythara.wordwrap("The quick brown fox", 12) # => ["The quick", "brown fox"]
Cythara.linewrap("The quick brown fox", 12) # => ["The quick br", "own fox"]

require "cythara/ansi"
Cythara.contains_ansi?("\e[31;1mRed Fox") # => true
Cythara.strip_ansi("\e[31;1mRed Fox")     # => "Red Fox"

Usage for lazy monkeys πŸ’

require "cythara/string"

"The quick brown fox".wordwrap(12) # => ["The quick", "brown fox"]
"The quick brown fox".linewrap(12) # => ["The quick br", "own fox"]

"\e[31;1mRed Fox".contains_ansi? # => true
"\e[31;1mRed Fox".strip_ansi     # => "Red Fox"

Credits

The strip_ansi and contains_ansi? methods were ported from the strings-ansi Ruby gem by Piotr Murach.

Contributing

  1. Fork it (https://github.com/busyloop/cythara/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