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.
Switch branches/tags
Pull request Compare This branch is 7 commits behind h3rald:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
examples
lib
spec
CHANGELOG.rdoc
LICENSE
README.rdoc
Rakefile

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! ;-)