ruby / curses

Ruby binding for curses, ncurses, and PDCurses. Formerly part of the ruby standard library.
Other
296 stars 34 forks source link
c curses pdcurses ruby ruby-bindings

curses

Gem Version ubuntu windows macos

Description

A Ruby binding for curses, ncurses, and PDCurses. curses is an extension library for text UI applications.

Formerly part of the Ruby standard library, curses was removed and placed in this gem with the release of Ruby 2.1.0. (see ruby/ruby@9c5b2fd)

Install

$ gem install curses

Requires ncurses or ncursesw (with wide character support). On Debian based distributions, you can install it with apt:

$ apt install libncurses5-dev

Or

$ apt install libncursesw5-dev

On Windows, gem install curses will build bundled PDCurses, so you don't need to install extra libraries. However, if you prefer ncurses to PDCurses, specify the following option:

> gem install curses -- --use-system-libraries

On mingw, you need DevKit to compile the extension library.

On MacOS, ncurses menu isn't natively supported. You can install the gem with menu support using homebrew:

brew install ncurses
gem install curses -- --use-system-libraries --with-ncurses-dir=/usr/local/opt/ncurses

with /usr/local/opt/ncurses the path where homebrew installed ncurses on your machine

Documentation

See https://www.rubydoc.info/gems/curses.

Developers

After checking out the repo, run bundle install to install dependencies.

To compile the extension library, run bundle exec rake compile.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in curses.gemspec, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

License

curses is released under the Ruby and 2-clause BSD licenses. See COPYING for details.

It includes a forked version of PDCurses, which is in the public domain:

https://github.com/Bill-Gray/PDCurses

The version for Win32 console mode in the wincon subdirectory is used.