class Capistrano::Template::Helpers::Uploader

rubocop: disable Metrics/ClassLength

Attributes

digest[RW]
digest_cmd[RW]
full_to_path[RW]
group[RW]
group_test_cmd[RW]
io[RW]
mode[RW]
mode_test_cmd[RW]
remote_handler[RW]
user[RW]
user_test_cmd[RW]

Public Class Methods

new(full_to_path, remote_handler, mode: 0640, mode_test_cmd: nil, user: nil, user_test_cmd: nil, group: nil, group_test_cmd: nil, digest: nil, digest_cmd: nil, io: nil ) click to toggle source
# File lib/capistrano/template/helpers/uploader.rb, line 21
def initialize(full_to_path, remote_handler,
    mode: 0640,
    mode_test_cmd: nil,
    user: nil,
    user_test_cmd: nil,
    group: nil,
    group_test_cmd: nil,
    digest: nil,
    digest_cmd: nil,
    io: nil
)
  self.remote_handler = remote_handler

  self.full_to_path = full_to_path

  self.digest_cmd = digest_cmd
  self.mode = mode
  self.mode_test_cmd = mode_test_cmd
  self.user = user
  self.user_test_cmd = user_test_cmd
  self.group = group
  self.group_test_cmd = group_test_cmd

  self.io = io
  self.digest = digest
end

Public Instance Methods

call() click to toggle source
# File lib/capistrano/template/helpers/uploader.rb, line 48
def call
  upload_as_file
  set_mode
  set_user
  set_group
end
file_changed?() click to toggle source
# File lib/capistrano/template/helpers/uploader.rb, line 101
def file_changed?
  !__check__(digest_cmd)
end
group_changed?() click to toggle source
# File lib/capistrano/template/helpers/uploader.rb, line 113
def group_changed?
  group && __check__(group_test_cmd)
end
host() click to toggle source
# File lib/capistrano/template/helpers/uploader.rb, line 68
def host
  remote_handler.host
end
permission_changed?() click to toggle source
# File lib/capistrano/template/helpers/uploader.rb, line 105
def permission_changed?
  __check__(mode_test_cmd)
end
set_group() click to toggle source
# File lib/capistrano/template/helpers/uploader.rb, line 91
def set_group
  if group_changed?
    remote_handler.info "group changed for file #{full_to_path} on #{host} set new group"

    remote_handler.execute 'sudo', 'chgrp', group, full_to_path
  else
    remote_handler.info "group not changed for file #{full_to_path} on #{host}"
  end
end
set_mode() click to toggle source
# File lib/capistrano/template/helpers/uploader.rb, line 72
def set_mode
  if permission_changed?
    remote_handler.info "permission changed for file #{full_to_path} on #{host} set new permissions"
    remote_handler.execute 'chmod', octal_mode_str, full_to_path
  else
    remote_handler.info "permission not changed for file #{full_to_path} on #{host}"
  end
end
set_user() click to toggle source
# File lib/capistrano/template/helpers/uploader.rb, line 81
def set_user
  if user_changed?
    remote_handler.info "user changed for file #{full_to_path} on #{host} set new user"

    remote_handler.execute 'sudo', 'chown', user, full_to_path
  else
    remote_handler.info "user not changed for file #{full_to_path} on #{host}"
  end
end
upload_as_file() click to toggle source
# File lib/capistrano/template/helpers/uploader.rb, line 55
def upload_as_file
  if file_changed?
    remote_handler.info "copying to: #{full_to_path}"

    # just in case owner changed
    remote_handler.execute 'rm', '-f', full_to_path

    remote_handler.upload! io, full_to_path
  else
    remote_handler.info "File #{full_to_path} on host #{host} not changed"
  end
end
user_changed?() click to toggle source
# File lib/capistrano/template/helpers/uploader.rb, line 109
def user_changed?
  user && __check__(user_test_cmd)
end

Protected Instance Methods

__check__(*args) click to toggle source
# File lib/capistrano/template/helpers/uploader.rb, line 119
def __check__(*args)
  remote_handler.test(*args)
end
octal_mode_str() click to toggle source
# File lib/capistrano/template/helpers/uploader.rb, line 123
def octal_mode_str
  format '%.4o' , mode
end