https://github.com/kyrylo/linenoise-rb
A Ruby wrapper around the small self-contained alternative to Readline and Libedit called Linenoise (https://github.com/antirez/linenoise).
https://github.com/kyrylo/linenoise-rb
console libedit linenoise readline readline-interface terminal
Last synced: about 1 year ago
JSON representation
A Ruby wrapper around the small self-contained alternative to Readline and Libedit called Linenoise (https://github.com/antirez/linenoise).
- Host: GitHub
- URL: https://github.com/kyrylo/linenoise-rb
- Owner: kyrylo
- License: mit
- Created: 2018-11-24T19:02:10.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2020-03-18T07:29:35.000Z (about 6 years ago)
- Last Synced: 2025-03-15T00:51:12.782Z (about 1 year ago)
- Topics: console, libedit, linenoise, readline, readline-interface, terminal
- Language: C
- Homepage:
- Size: 43 KB
- Stars: 7
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
Linenoise Ruby
==============
[](https://circleci.com/gh/kyrylo/linenoise-rb)
[](http://badge.fury.io/rb/linenoise)
[](http://inch-ci.org/github/kyrylo/linenoise)
[](https://rubygems.org/gems/linenoise)
* [Documentation][documentation]
Introduction
------------
The Linenoise gem is a wrapper around the small self-contained alternative to
Readline and Libedit called [Linenoise](https://github.com/antirez/linenoise).
Features
--------
* History support
* Completion
* Hints (suggestions at the right of the prompt as you type)
* Single and multiline editing mode with the usual key bindings
Installation
------------
### Bundler
Add the Linenoise gem to your Gemfile:
```ruby
gem 'linenoise', '~> 1.1'
```
### Manual
Invoke the following command from your terminal:
```sh
gem install linenoise
```
Examples
--------
### Basic example
```ruby
require 'linenoise'
while buf = Linenoise.linenoise('> ')
p buf
end
```
### Completion
```ruby
require 'linenoise'
LIST = %w[
search download open help history quit url next clear prev past
].freeze
Linenoise.completion_proc = proc do |input|
LIST.grep(/\A#{Regexp.escape(input)}/)
end
while line = Linenoise.linenoise('> ')
p line
end
```
### Hints
```ruby
require 'linenoise'
Linenoise.hint_proc = proc do |input|
case input
when /git show/
' [] [...]'
when /git log/
' [] []'
else
' --help'
end
end
while line = Linenoise.linenoise('> ')
p line
end
```
More examples and full API explanation is available on the
[documentation][documentation] page.
Development
-----------
### Running tests
```sh
bundle exec rake compile spec
```
### Launching development console
```
bundle exec rake compile console
```
Contact
-------
In case you have a problem, question or a bug report, feel free to:
* [file an issue](https://github.com/kyrylo/linenoise-rb/issues)
* send me an email (see https://github.com/kyrylo)
* [tweet at me](https://twitter.com/kyrylosilin)
License
-------
The project uses the MIT License. See LICENSE.md for details.
[documentation]: https://www.rubydoc.info/github/kyrylo/linenoise-rb/Linenoise