Module: Multiruby

Module | Multiruby
In: | lib/multiruby.rb

multiruby_setup is a script to help you manage multiruby.

usage: multiruby_setup [-h|cmd|spec…]

      cmds:

        -h, --help, help = show this help.
        build            = build and install everything. used internally.
        clean            = clean scm build dirs and remove non-scm build dirs.
        list             = print installed versions.
        rm:$version      = remove a particular version.
        rubygems:merge   = symlink all rubygem dirs to one dir.
        tags             = list all tags from svn.
        update           = update svn builds.
        update:rubygems  = update rubygems and nuke install dirs.

      specs:

        the_usual              = alias for latest versions from tar + rubygems
        mri:svn:current        = alias for mri:svn:releases and mri:svn:branches.
        mri:svn:releases       = alias for supported releases of mri ruby.
        mri:svn:branches       = alias for active branches of mri ruby.
        mri:svn:branch:$branch = install a specific $branch of mri from svn.
        mri:svn:tag:$tag       = install a specific $tag of mri from svn.
        mri:tar:$version       = install a specific $version of mri from tarball.
        rbx:ln:$dir            = symlink your rbx $dir
        rbx:git:current        = install rbx from git

      environment variables:

        GEM_URL  = url for rubygems tarballs
        MRI_SVN  = url for MRI SVN
        RBX_GIT  = url for rubinius git
        RUBY_URL = url for MRI tarballs
        VERSIONS = what versions to install

        RUBYOPT is cleared on installs.

NOTES:

- you can add a symlink to your rubinius build into ~/.multiruby/install
- I need patches/maintainers for other implementations.

### Methods

build_and_install clean each_scm_build_dir env extract_latest_version fetch_tar git_clone gnu_utils_build help in_build_dir in_install_dir in_root_dir in_tmp_dir in_versions_dir list merge_rubygems mri_latest_tag rake_build rbx_ln rm root_dir run setup_dirs svn_co tags update update_rubygems

### Constants

TAGS | = | %w( 1_8_6 1_8_7 1_9_1)
BRANCHES | = | %w(1_8 1_8_6 1_8_7 trunk)
VERSIONS | = | env('VERSIONS', TAGS.join(":").gsub(/_/, '.')).split(/:/)
MRI_SVN | = | env 'MRI_SVN', 'http://svn.ruby-lang.org/repos/ruby'
RBX_GIT | = | env 'RBX_GIT', 'git://github.com/evanphx/rubinius.git'
RUBY_URL | = | env 'RUBY_URL', 'http://ftp.ruby-lang.org/pub/ruby'
GEM_URL | = | env 'GEM_URL', 'http://files.rubyforge.vm.bytemark.co.uk/rubygems'
HELP | = | []

### Public Class methods

build_and_install()
clean()
each_scm_build_dir() {|scm| ...}
env(name, fallback;)
extract_latest_version(url, matching=nil)
fetch_tar(v)
git_clone(url, dir)
gnu_utils_build(inst_dir)
help()
in_build_dir() {|| ...}
in_install_dir() {|| ...}
in_root_dir() {|| ...}
in_tmp_dir() {|| ...}
in_versions_dir() {|| ...}
list()
merge_rubygems()
mri_latest_tag(v)
rake_build(inst_dir)
rbx_ln(dir)
rm(name)
root_dir()
run(base_cmd, log = nil)
setup_dirs(download = true)
svn_co(url, dir)
tags()
update()
update_rubygems()

[Validate]