Class: RBundler
- Inherits:
-
Object
- Object
- RBundler
- Defined in:
- lib/rbundle.rb
Class Method Summary collapse
- .bundle ⇒ Object
- .command_inspector(exit_code) ⇒ Object
- .install(dependency) ⇒ Object
- .install_installer ⇒ Object
- .read_requirements ⇒ Object
Class Method Details
.bundle ⇒ Object
20 21 22 23 |
# File 'lib/rbundle.rb', line 20 def self.bundle install_installer self.read_requirements.each {|d| install(d)} end |
.command_inspector(exit_code) ⇒ Object
31 32 33 |
# File 'lib/rbundle.rb', line 31 def self.command_inspector(exit_code) throw 'Installation failed.' if exit_code != 0 end |
.install(dependency) ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/rbundle.rb', line 48 def self.install(dependency) with_retries(args = [dependency]) do |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'), quiet=F)" } puts "Executing #{command}" `#{command}` command_inspector($?.exitstatus) end end |
.install_installer ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/rbundle.rb', line 35 def self.install_installer with_retries(args=[]) do 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'), quiet=F)" } puts "Executing #{command}" `#{command}` `R --slave --vanilla -e "library(devtools)"` command_inspector($?.exitstatus) end end |
.read_requirements ⇒ Object
25 26 27 28 29 |
# File 'lib/rbundle.rb', line 25 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 |