Zsh and Prezto files don't always reside in `~/`. Instead, they have
a more spec compliant location (`${ZDOTDIR:-$HOME}/`). Make them
unambiguous in the documentation. Likewise, for `$GNUPGHOME`.
Further, add instruction for optionally setting up Prezto in
`$XDG_CONFIG_HOME`.
While at this, also add clarification on relative ordering of some of
the modules, apply more formatting tweaks and doc improvements.
Ruby
Configures Ruby local gem installation, loads version managers, and defines aliases.
Local Gem Installation
When a Ruby version manager is not detected, local gems are installed in
~/.gems; otherwise, they are installed according to the manager.
rvm
An alternative to the above is to use The Ruby Version Manager (rvm), which allows for managing multiple, isolated Ruby installations and gem sets in the home directory.
Since RVM is loaded into the shell and is known to override shell commands, it may conflict with shell scripts.
Load this module as late as possible when using RVM since RVM will complain if
it is not first in $PATH.
rbenv
An alternative RVM is to use rbenv, which allows for switching between multiple, isolated Ruby installations in the home directory.
While it is not as feature rich as RVM, it is not loaded into the shell and is not known to cause conflicts with shell scripts.
This will be loaded automatically if rbenv is installed to $RBENV_ROOT,
~/.rbenv, or if the rbenv command is on the path.
chruby
Yet another alternative is chruby, which is simpler than both rvm and rbenv.
Settings
Auto-Switch
To enable auto switching the Ruby version on directory change based on the
.ruby-version file, add the following line to ${ZDOTDIR:-$HOME}/.zpreztorc:
zstyle ':prezto:module:ruby:chruby' auto-switch 'yes'
Bundler
Manage gems that are not meant to be used as commands, such as application dependencies, with Bundler.
Aliases
General
rbis short forruby.
Bundler
rbbmanages ruby dependencies (bundle).rbbccleans up unused gems in your bundler directory.rbbeexecutes a script in the context of the current bundle.rbbiinstalls the gems specified in theGemfileinvendor/bundle.rbbIinstalls the following:- gems specified in the
Gemfileinvendor/bundle. - packages the gems into
vendor/cache. - appends bundler directories to
.gitignore.
- gems specified in the
rbbllists all gems in the current bundle.rbboopens an installed gem in the editor.rbbppackages gem files intovendor/cache.rbbuupdates gems to their latest version.
Functions
ruby-app-rootdisplays the path to the Ruby application root directory.ruby-infoexposes information about the Ruby environment via the$ruby_infoassociative array.
Theming
To display the name of the current Ruby version in a prompt, define the
following style in the prompt_name_setup function.
# %v - ruby version.
zstyle ':prezto:module:ruby:info:version' format 'version:%v'
Then add $ruby_info[version] to $PROMPT or $RPROMPT and call
ruby-info in the prompt_name_preexec hook function.
Authors
The authors of this module should be contacted via the issue tracker.