Class: RBundler

Inherits:
Object
  • Object
show all
Defined in:
lib/rbundle.rb

Class Method Summary collapse

Class Method Details

.bundleObject



5
6
7
8
# File 'lib/rbundle.rb', line 5

def self.bundle
  install_installer
  self.read_requirements.each {|d| install(d)}
end

.command_inspector(exit_code) ⇒ Object



16
17
18
19
20
21
# File 'lib/rbundle.rb', line 16

def self.command_inspector(exit_code)
  if(exit_code != 0) 
    puts("Installation failed")
    exit(exit_code)
  end
end

.install(dependency) ⇒ Object



33
34
35
36
37
38
39
40
41
# File 'lib/rbundle.rb', line 33

def self.install(dependency)
  puts "Installing #{dependency['package']}"
  command = %{
   R --slave --vanilla -e "options(warn=2); library(devtools); if ((!'#{dependency['package']}' %in% installed.packages()[,'Package']) || packageVersion('#{dependency['package']}') < '#{dependency['version']}') install_version('#{dependency['package']}', version='#{dependency['version']}', repos=c('https://cloud.r-project.org'))"
  }
  puts "Executing #{command}"
  `#{command}`
  command_inspector($?.exitstatus)
end

.install_installerObject



23
24
25
26
27
28
29
30
31
# File 'lib/rbundle.rb', line 23

def self.install_installer
  puts "Installing devtools"
  command = %{
    R --vanilla --slave -e "if (! ('devtools' %in% installed.packages()[,'Package'])) install.packages(pkgs='devtools', repos=c('https://cloud.r-project.org'))"
  }
  puts "Executing #{command}"
  `#{command}`
  command_inspector($?.exitstatus)
end

.read_requirementsObject



10
11
12
13
14
# File 'lib/rbundle.rb', line 10

def self.read_requirements
  dependencies_definitions = "#{Dir.pwd}/dependencies.txt"
  puts "Reading Dependencies to install from #{Dir.pwd}/dependencies.txt"
  YAML.load(File.open(dependencies_definitions))
end