RawLine is a 100% Ruby library able to provide some of the functionality offered by ReadLine, plus additional features such as a more intuitive way to bind characters to specific keys or key sequences.
Ruby
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
examples
lib
spec
CHANGELOG.rdoc
Gemfile
Gemfile.lock
LICENSE
README.rdoc
Rakefile
rawline.gemspec

README.rdoc

RawLine

RawLine was created to provide a 100% Ruby alternative to the ReadLine library, providing some of its most popular features such as:

  • Basic line editing operations

  • Word completion

  • History Management

  • Custom key/key sequences bindings

Installation

The simplest method to install RawLine is to install the gem:

gem install rawline

Usage

Editor initialization:

require 'rawline' editor = RawLine::Editor.new

Key binding:

editor.bind(:ctrl_z) { editor.undo } editor.bind(:up_arrow) { editor.history_back } editor.bind(:ctrl_x) { puts “Exiting…”; exit }

Setup word completion

editor.completion_proc = lambda do |word| if word ['select', 'update', 'delete', 'debug', 'destroy'].find_all { |e| e.match(/^#{Regexp.escape(word)}/) } end end editor.completion_append_string = “ ”

Read input:

editor.read(“=> ”, true)

Replacing Readline

Simply include the RawLine (or Rawline) module: include Rawline

…and you'll get:

readline(prompt, add_history) # RawLine::Editor#read(prompt, add_history) HISTORY # RawLine::Editor#history FILENAME_COMPLETION_PROC # Rawline::Editor#filename_completion_proc …

but also:

Rawline.editor # RawLine::Editor

…which opens a world of endless possibilities! ;-)