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