Class: Luban::Deployment::Packages::Ruby::Installer

Inherits:
Luban::Deployment::Package::Installer show all
Defined in:
lib/luban/deployment/packages/ruby.rb

Constant Summary

Constants inherited from Luban::Deployment::Package::Installer

Luban::Deployment::Package::Installer::DefaultLibExtension, Luban::Deployment::Package::Installer::DefaultSrcFileExtName, Luban::Deployment::Package::Installer::LibExtensions

Constants included from Luban::Deployment::Parameters::Application

Luban::Deployment::Parameters::Application::DefaultLogrotateInterval, Luban::Deployment::Parameters::Application::DefaultLogrotateMaxAge

Constants included from Luban::Deployment::Parameters::General

Luban::Deployment::Parameters::General::DefaultLubanRootPath

Constants included from Helpers::Utils

Helpers::Utils::LogLevels

Instance Attribute Summary collapse

Attributes inherited from Luban::Deployment::Package::Installer

#build_env_vars, #configure_opts

Attributes inherited from Worker::Base

#task

Attributes included from Helpers::Utils

#backend

Attributes included from Helpers::Configuration

#config

Instance Method Summary collapse

Methods inherited from Luban::Deployment::Package::Installer

#build_path, #cached?, #cleanup_all, #configure_executable, #current_configured?, #current_package_version, #current_symlinked?, #currently_used_by, #default_configure_opts, #download, #download_url, #downloaded?, #get_summary, #include_path, #install, #install_log_file_name, #install_log_file_path, #install_log_path, #lib_path, #required_packages, #src_cache_path, #src_file_extname, #src_file_md5, #src_file_name, #src_file_path, #src_md5_file_path, #uninstall, #update_binstubs, #validate_download_url, #whence_origin, #which_current

Methods inherited from Luban::Deployment::Package::Worker

#bin_path, #child?, #current_bin_path, #current_path, define_executable, #install_path, package_class, #package_downloads_path, #package_path, #package_tmp_path, #package_versions_path, #parent, worker_class

Methods included from Worker::Paths::Remote

#app_archives_path, #app_bin_path, #app_path, #app_tmp_path, #archived_logs_path, #archives_path, #current_app_path, #downloads_path, #env_path, #envrc_file, #luban_install_path, #package_bin_path, #package_install_path, #project_path, #releases_path, #shared_path, #tmp_path, #unset_envrc_file

Methods inherited from Worker::Base

#dry_run?, #force?, #initialize, #linux?, #method_missing, #osx?, #packages, #run, #target_full_name, #target_major_version, #target_name, #target_patch_level, #target_version

Methods included from Luban::Deployment::Parameters::Application

#env_name, #logrotate_count, #monitor_itself?, #monitorable?

Methods included from Luban::Deployment::Parameters::Base

#parameter

Methods included from Luban::Deployment::Parameters::Project

#monitor_defined?, #process_monitor_via

Methods included from Luban::Deployment::Parameters::General

included

Methods included from Helpers::Utils

#assure, #assure_dirs, #assure_symlink, #capture, #check_pass?, #chmod, #cp, #directory?, #exists?, #file?, #hardware_name, #host, #hostname, #ln, #match?, #md5_for, #md5_for_dir, #md5_for_file, #md5_matched?, #mkdir, #mv, #now, #os_name, #os_release, #readlink, #render_template, #revision_match?, #rm, #rmdir, #sudo, #symlink?, #touch, #truncate, #upload_by_template, #url_exists?, #user_home

Methods included from Helpers::Configuration

#ask, #fetch, #find_template_file, #load_configuration_file, #primary, #release_roles, #role, #roles, #server, #set, #set_default, #syntax_error?

Constructor Details

This class inherits a constructor from Luban::Deployment::Worker::Base

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Luban::Deployment::Worker::Base

Instance Attribute Details

#opt_dirsObject (readonly)

Returns the value of attribute opt_dirs.



84
85
86
# File 'lib/luban/deployment/packages/ruby.rb', line 84

def opt_dirs
  @opt_dirs
end

Instance Method Details

#gem_executableObject



100
101
102
# File 'lib/luban/deployment/packages/ruby.rb', line 100

def gem_executable
  @gem_executable ||= bin_path.join('gem')
end

#install_doc?Boolean

Returns:

  • (Boolean)


86
87
88
# File 'lib/luban/deployment/packages/ruby.rb', line 86

def install_doc?
  task.opts.install_doc
end

#install_tcl?Boolean

Returns:

  • (Boolean)


90
91
92
# File 'lib/luban/deployment/packages/ruby.rb', line 90

def install_tcl?
  task.opts.install_tcl
end

#install_tk?Boolean

Returns:

  • (Boolean)


94
95
96
# File 'lib/luban/deployment/packages/ruby.rb', line 94

def install_tk?
  task.opts.install_tk
end

#installed?Boolean

Returns:

  • (Boolean)


112
113
114
115
116
117
118
119
# File 'lib/luban/deployment/packages/ruby.rb', line 112

def installed?
  return false unless file?(ruby_executable)
  pattern = Regexp.escape(package_major_version)
  unless package_patch_level.empty?
    pattern += ".*#{Regexp.escape(package_patch_level)}"
  end
  match?("#{ruby_executable} -v", Regexp.new(pattern))
end

#source_repoObject



104
105
106
# File 'lib/luban/deployment/packages/ruby.rb', line 104

def source_repo
  @source_repo ||= "https://cache.ruby-lang.org"
end

#source_url_rootObject



108
109
110
# File 'lib/luban/deployment/packages/ruby.rb', line 108

def source_url_root
  @source_url_root ||= "pub/ruby/#{package_major_version.gsub(/\.\d+$/, '')}"
end

#with_opt_dir(dir) ⇒ Object Also known as: with_openssl_dir, with_yaml_dir



121
122
123
# File 'lib/luban/deployment/packages/ruby.rb', line 121

def with_opt_dir(dir)
  @opt_dirs << dir
end