An open API service indexing awesome lists of open source software.

https://github.com/cldwalker/nirvana

A ruby web shell that is very ape and very nice
https://github.com/cldwalker/nirvana

Last synced: about 1 year ago
JSON representation

A ruby web shell that is very ape and very nice

Awesome Lists containing this project

README

          

== 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