class OfflineDeployer::GemsHandler
Attributes
app_root[R]
branch[R]
from_path[R]
from_tag[R]
to_tag[R]
zip_file_path[R]
Public Class Methods
new(from_tag, to_tag, app_root, zip_file_path, from_path = nil)
click to toggle source
# File lib/offline_deployer/gems_handler.rb, line 3 def initialize(from_tag, to_tag, app_root, zip_file_path, from_path = nil) @zip_file_path = zip_file_path @from_tag = from_tag @to_tag = to_tag @app_root = app_root @from_path = from_path || default_from_path @branch = current_branch end
Public Instance Methods
call()
click to toggle source
# File lib/offline_deployer/gems_handler.rb, line 14 def call prepare_tmp_folder copy_gems_to_tmp_folder add_gems_to_zip destroy_tmp_folder checkout_branch end
Private Instance Methods
add_gems_to_zip()
click to toggle source
# File lib/offline_deployer/gems_handler.rb, line 75 def add_gems_to_zip `cd #{tmp_release_folder} && zip -r #{zip_file_path} vendor/*` end
checkout_branch()
click to toggle source
# File lib/offline_deployer/gems_handler.rb, line 83 def checkout_branch `cd #{app_root} && git checkout #{branch}` end
copy_gem(gem_version)
click to toggle source
# File lib/offline_deployer/gems_handler.rb, line 68 def copy_gem(gem_version) `rsync --progress #{from_path}/build_info/#{gem_version}.info #{to_path}/build_info/` `rsync --progress #{from_path}/cache/#{gem_version}.gem #{to_path}/cache/` `rsync --progress -r #{from_path}/gems/#{gem_version} #{to_path}/gems/` `rsync --progress #{from_path}/specifications/#{gem_version}.gemspec #{to_path}/specifications/` end
copy_gems_to_tmp_folder()
click to toggle source
# File lib/offline_deployer/gems_handler.rb, line 60 def copy_gems_to_tmp_folder gems.each do |gem_spec| name, version = gem_spec.split(' ') version = version[1...-1] copy_gem("#{name}-#{version}") end end
current_branch()
click to toggle source
# File lib/offline_deployer/gems_handler.rb, line 32 def current_branch `cd #{app_root} && git rev-parse --abbrev-ref HEAD` end
default_from_path()
click to toggle source
# File lib/offline_deployer/gems_handler.rb, line 24 def default_from_path OfflineDeployer.settings.gems_source_path end
destroy_tmp_folder()
click to toggle source
# File lib/offline_deployer/gems_handler.rb, line 79 def destroy_tmp_folder FileUtils.remove_dir(tmp_release_folder) end
gem_list(tag)
click to toggle source
# File lib/offline_deployer/gems_handler.rb, line 47 def gem_list(tag) Dir.chdir(app_root) do `git checkout #{tag}` Bundler.with_clean_env do `bundle list`.gsub(' * ', '') end end end
gems()
click to toggle source
# File lib/offline_deployer/gems_handler.rb, line 56 def gems gem_list(to_tag).split("\n") - gem_list(from_tag).split("\n") end
prepare_tmp_folder()
click to toggle source
# File lib/offline_deployer/gems_handler.rb, line 36 def prepare_tmp_folder FileUtils.mkdir_p "#{to_path}/build_info" FileUtils.mkdir_p "#{to_path}/cache" FileUtils.mkdir_p "#{to_path}/gems" FileUtils.mkdir_p "#{to_path}/specifications" end
tmp_release_folder()
click to toggle source
# File lib/offline_deployer/gems_handler.rb, line 28 def tmp_release_folder "#{app_root}/tmp/releases/gems_handler" end
to_path()
click to toggle source
# File lib/offline_deployer/gems_handler.rb, line 43 def to_path "#{tmp_release_folder}/#{OfflineDeployer.settings.gems_vendor_path}" end