class Rubypack::Deployer
Public Class Methods
new(options)
click to toggle source
# File lib/rubypack/deployer.rb, line 5 def initialize(options) @options = options @output = if options[:verbose] VerboseOutput.new elsif options[:quiet] QuietOutput.new else DefaultOutput.new end @filename = options[:filename] @directory = options[:directory] end
Public Instance Methods
deploy!()
click to toggle source
# File lib/rubypack/deployer.rb, line 19 def deploy! success = unpack_file return unless success success = install_gems return false unless success true rescue => exception @output.error(exception.message) verbose(exception.backtrace.join("\n")) false end
Private Instance Methods
install_gems()
click to toggle source
# File lib/rubypack/deployer.rb, line 57 def install_gems @output.step('Installing gems...') do bundler = BundlerController.new(path: @directory) bundler.install do |out| while line = out.gets do @output.verbose(' >', line) end end end end
unpack_file()
click to toggle source
# File lib/rubypack/deployer.rb, line 35 def unpack_file @output.step('Unpacking file...') do if @options[:compressor] format = @options[:compressor] elsif @filename =~ /\.([a-z]+)\.rpack$/ format = $1 else @output.error("Unknown package format") return false end compressor = Compressor.new( format: format, output: @output) compressor.decompress!( filename: @filename, directory: @directory) true end end