class CloudFilesTransfer::Transfer

Attributes

destination[RW]
origin[RW]
path[RW]

Public Class Methods

copy!(origin, destination, path, args={}) click to toggle source
# File lib/cloud_files_transfer/transfer.rb, line 12
def self.copy!(origin, destination, path, args={})
  return puts("#{path} skipped.".colorize(:light_blue)) if (destination.object_exists?(path) rescue false)
  new(origin, destination, path, args).copy
end
new(origin, destination, path, args={}) click to toggle source
# File lib/cloud_files_transfer/transfer.rb, line 6
def initialize(origin, destination, path, args={})
  @origin = origin
  @destination = destination
  @path = path
end

Public Instance Methods

copy() click to toggle source
# File lib/cloud_files_transfer/transfer.rb, line 17
def copy
  retries = 0
  begin
    origin_object = origin.object(path)
    desintation_object = destination.create_object(path)
    desintation_object.write(origin_object.data)
    success("#{path} saved")
  rescue Exception
    retries = retries + 1
    unless retries > 2
      warn("#{path} failed. Retry")
      retry
    else
      fail("#{path} failed.")
    end
  end
end

Private Instance Methods

colored_print(message, color) click to toggle source
# File lib/cloud_files_transfer/transfer.rb, line 53
def colored_print message, color
  puts(message.colorize(color))
end
fail(message) click to toggle source
# File lib/cloud_files_transfer/transfer.rb, line 49
def fail message
  colored_print(message, :red)
end
info(message) click to toggle source
# File lib/cloud_files_transfer/transfer.rb, line 37
def info message
  colored_print(message, :light_blue)
end
success(message) click to toggle source
# File lib/cloud_files_transfer/transfer.rb, line 45
def success message
  colored_print(message, :green)
end
warn(message) click to toggle source
# File lib/cloud_files_transfer/transfer.rb, line 41
def warn message
  colored_print(message, :yellow)
end