Home > nirvana

nirvana

Nirvana is a project mainly written in JAVASCRIPT and RUBY, based on the MIT license.

A ruby web shell that is very ape and very nice

== Description A ruby web shell that has autocompletion and readline behavior. It uses websockets, repl.js, readline.js and ripl for the shell engine.

== Install Install the gem with:

sudo gem install nirvana

== Usage

Your browser must have html5 websockets support.

To use, start a websocket server and open nirvana in a tab

# On a mac
$ nirvana

# Everywhere else
$ nirvana | command_to_browser_path

If you close the tab, the path to nirvana's html page is (for reopening)

$ echo $(dirname $(gem which nirvana))/nirvana/public/index.html

To see what options nirvana takes (mostly options like ripl):

$ nirvana -h

Once you're in the nirvana web shell, autocompletion should work better than irb's (argument autocompletion):

>> Bo[TAB]
>> Bond
>> Bond.const[TAB]
   Bond.const_defined?
   Bond.const_get
   Bond.const_missing
   Bond.const_set
   Bond.constants
>> Bond.const_g[TAB]
>> Bond.const_get :Ag[TAB]
>> Bond.const_get :Agent

Also notice that a subset of readline's functionality is available. Try C-l, C-r or C-p and they should do what readline normally does. For more keybindings, see {readline.js}[http://github.com/cldwalker/readline.js].

== Customize Since nirvana uses ripl under the hood, most shell behavior is customizable with ripl plugins which get loaded from ~/.riplrc. See {ripl}[http://github.com/cldwalker/ripl] for more.

== Links

  • {ripl}[http://github.com/cldwalker/ripl]
  • {readline.js}[http://github.com/cldwalker/readline.js]
  • {repl.js}[http://github.com/cldwalker/repl.js]

== Bugs/Issues Please report them {on github}[http://github.com/cldwalker/nirvana/issues]. For javascript issues, report them on {readline.js}[http://github.com/cldwalker/readline.js/issues] or {repl.js}[http://github.com/cldwalker/repl.js/issues] as appropriate.

== Credits

  • {rkh's brirb}[http://github.com/rkh/brirb]: Original prototype which inspired this project

== License nirvana is MIT licensed. nirvana comes bundled with other libraries which have the following licenses: jquery (GPL2 and MIT), jquery.hotkeys plugin (no license), repl.js jquery plugin (MIT) and readline.js jquery plugin (MIT).

== Todo

  • Tests
  • Easier way to reopen an existing session
  • Load ~/.irb_history into readline.js
  • Customizable html and js
  • Use text area for multi-line input
  • See readline.js and repl.js todos for javascript todos
  • Possible plugins for sinatra and em-websocket-server