
# OpenNebula Front Prepare

Ruby version 2.0.0 must be available on the host machine either directly from
the path or through RVM. If RVM is found, Ruby in version 2.0.0 doesn't need to 
be installed, it will be directly downloaded.

To install RVM:

```
curl -L get.rvm.io > rvm-install
bash < ./rvm-install
echo '# Source RVM' >> ~/.profile
echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"' >> ~/.profile
echo 'if which ruby >/dev/null && which gem >/dev/null; then PATH="$(ruby -rubygems -e 'puts Gem.user_dir')/bin:$PATH"; fi' >> ~/.profile
. ~/.profile
# Arch specific
sudo pacman -S openssl-1.0 # Probably already installed
PKG_CONFIG_PATH=/usr/lib/openssl-1.0/pkgconfig:/usr/lib/pkgconfig rvm install 2.0.0

```

    module.exports =
      header: 'OpenNebula Front Prepare'
      if: -> @contexts('./lib/nebula/front')[0]?.config.host is @config.host
      ssh: false
      handler: (options) ->
        @system.execute
          header: 'Ruby'
          cmd: """
          [[ `ruby -v | sed 's/ruby \\([0-9]\\.[0-9]\\.[0-9]\\).*/\\1/'` == '2.0.0' ]] && exit 3
          command -v rvm || exit 4
          rvm use 2.0.0 && exit 3
          rvm install 2.0.0
          """
          code_skipped: 3
          trap: true
        , (err) ->
          throw Error "Ruby version 2.0.0 or RVM must be installed" if err?.code is 4
        @system.mkdir
          target: options.gem_dir
        @file
          header: 'Gems'
          target: path.resolve options.gem_dir, 'Gemfile'
          content: """
          source 'https://rubygems.org'
          gem 'rack', '< 2.0.0'
          gem 'sinatra', '< 2.0.0'
          gem 'thin'
          gem 'memcache-client'
          gem 'zendesk_api', '< 1.14.0'
          gem 'builder'
          """
        @system.execute
          header: 'Download'
          if: -> @status -1
          cwd: path.resolve options.cache_dir, 'nebula'
          cmd: """
          gem install --user-install bundler
          bundler package
          """

## Dependencies

    path = require 'path'
