class DRbQS::Manage::SSHShell::RubyEnvironment

Constants

DEFAULT_RVM_SCRIPT

Attributes

directory[R]
env[R]
rvm[R]
rvm_init[R]

Public Class Methods

new(opts = {}) click to toggle source

@param [Hash] opts The options of ruby environment. @option opts [String] :directory Directory when we execute commands. @option opts [String] :rvm Set ruby implementation on rvm. @option opts [String] :rvm_init Set the path of init script of rvm. @option opts [Hash] :env Set pair of environmental variables and their values.

# File lib/drbqs/manage/ssh_shell.rb, line 20
def initialize(opts = {})
  @directory = opts[:directory]
  @rvm = opts[:rvm]
  @rvm_init = opts[:rvm_init]
  if (@rvm || @rvm_init) && !(String === @rvm_init)
    @rvm_init = DEFAULT_RVM_SCRIPT
  end
  @env = opts[:env]
end

Public Instance Methods

get_environment_commands() click to toggle source
# File lib/drbqs/manage/ssh_shell.rb, line 49
def get_environment_commands
  ['echo "directory: " `pwd`',
   'echo "files:"',
   'ls',
   'if which rvm > /dev/null; then rvm info; else ruby -v; fi']
end
setup_commands() click to toggle source
# File lib/drbqs/manage/ssh_shell.rb, line 41
def setup_commands
  cmds = commands_to_set_env_on_bash
  cmds << "cd #{@directory}" if @directory
  cmds << "source #{@rvm_init}" if @rvm_init
  cmds << "rvm use #{@rvm}" if @rvm
  cmds
end

Private Instance Methods

commands_to_set_env_on_bash() click to toggle source
# File lib/drbqs/manage/ssh_shell.rb, line 30
def commands_to_set_env_on_bash
  if @env
    @env.map do |var, val|
      "export #{var}=#{val}"
    end
  else
    []
  end
end