class RocketJob::Jobs::CopyFileJob
Public Instance Methods
perform()
click to toggle source
# File lib/rocket_job/jobs/copy_file_job.rb, line 56 def perform if source_data target_path.write(source_data) elsif target_url target_path.copy_from(source_path) end self.percent_complete = 100 end
source_path()
click to toggle source
# File lib/rocket_job/jobs/copy_file_job.rb, line 66 def source_path source = IOStreams.path(source_url, **decode_args(source_args)) apply_streams(source, source_streams) source end
target_path()
click to toggle source
# File lib/rocket_job/jobs/copy_file_job.rb, line 72 def target_path target = IOStreams.path(target_url, **decode_args(target_args)) apply_streams(target, target_streams) target end
Private Instance Methods
apply_streams(path, streams)
click to toggle source
# File lib/rocket_job/jobs/copy_file_job.rb, line 84 def apply_streams(path, streams) streams.each_pair { |stream, args| path.stream(stream.to_sym, args.nil? ? {} : decode_args(args)) } end
decode_args(args)
click to toggle source
# File lib/rocket_job/jobs/copy_file_job.rb, line 88 def decode_args(args) return args.symbolize_keys unless defined?(SymmetricEncryption) decoded_args = {} args.each_pair do |key, value| if key.to_s.start_with?("encrypted_") && defined?(SymmetricEncryption) original_key = key.to_s.sub("encrypted_", "").to_sym decoded_args[original_key] = SymmetricEncryption.decrypt(value) elsif key.to_s.start_with?("secret_config_") && defined?(SecretConfig) original_key = key.to_s.sub("secret_config_", "").to_sym decoded_args[original_key] = SecretConfig.fetch(value) else decoded_args[key.to_sym] = value end end decoded_args end
set_description()
click to toggle source
# File lib/rocket_job/jobs/copy_file_job.rb, line 80 def set_description self.description ||= "Copying to #{target_url}" end