class MultiSync::LocalTarget

Public Instance Methods

delete(resource) click to toggle source
# File lib/multi_sync/targets/local_target.rb, line 40
def delete(resource)
  # MultiSync.say_status :delete, resource.path_with_root
  MultiSync.debug "Delete #{resource} '#{resource.path_without_root}' from #{self} '#{File.join(connection.local_root, destination_dir)}'"
  connection.directories.get(destination_dir.to_s).files.get(resource.path_without_root.to_s).destroy
  resource
end
files() click to toggle source
# File lib/multi_sync/targets/local_target.rb, line 10
def files
  files = []

  directory = connection.directories.get(destination_dir.to_s)
  return files if directory.nil?

  directory.files.each { |file|
    pathname = Pathname.new(file.key)

    # directory
    next if pathname.directory?
    files << MultiSync::RemoteResource.new(
      file: file,
      path_with_root: target_dir + destination_dir + pathname,
      path_without_root: pathname
    )
  }

  files.sort
end
upload(resource) click to toggle source
# File lib/multi_sync/targets/local_target.rb, line 31
def upload(resource)
  # MultiSync.say_status :upload, resource.path_with_root
  MultiSync.debug "Upload #{resource} '#{resource.path_without_root}' to #{self} '#{File.join(connection.local_root, destination_dir)}'"
  directory = connection.directories.get(destination_dir.to_s)
  return if directory.nil?
  directory.files.create(key: resource.path_without_root.to_s, body: resource.body)
  resource
end