class FakeFtp::ServerCommands::Dele

Public Instance Methods

run(ctx, filename = '', *) click to toggle source
# File lib/fake_ftp/server_commands/dele.rb, line 6
def run(ctx, filename = '', *)
  files_to_delete = ctx.store.values.select do |f|
    if ctx.absolute?
      ctx.abspath(::File.basename(filename)) == ctx.abspath(f.name)
    else
      ::File.basename(filename) == f.name
    end
  end

  return '550 Delete operation failed.' if files_to_delete.empty?

  ctx.store.reject! do |_, f|
    files_to_delete.include?(f)
  end

  '250 Delete operation successful.'
end