Module: Ftpd::DiskFileSystem::Accessors

Included in:
Base
Defined in:
lib/ftpd/disk_file_system.rb

Overview

DiskFileSystem mixin providing file attributes. These are used, alone or in combination, by nearly every command that accesses the disk file system.

Instance Method Summary collapse

Instance Method Details

#accessible?(ftp_path) ⇒ Boolean

Return true if the path is accessible to the user. This will be called for put, get and directory lists, so the file or directory named by the path may not exist.

Parameters:

  • ftp_path (String)

    The virtual path

Returns:

  • (Boolean)

46
47
48
49
50
51
# File 'lib/ftpd/disk_file_system.rb', line 46

def accessible?(ftp_path)
  # The server should never try to access a path outside of the
  # directory (such as '../foo'), but if it does, we'll catch it
  # here.
  expand_ftp_path(ftp_path).start_with?(@data_dir)
end

#directory?(ftp_path) ⇒ Boolean

Return true if the path exists and is a directory.

Parameters:

  • ftp_path (String)

    The virtual path

Returns:

  • (Boolean)

65
66
67
# File 'lib/ftpd/disk_file_system.rb', line 65

def directory?(ftp_path)
  File.directory?(expand_ftp_path(ftp_path))
end

#exists?(ftp_path) ⇒ Boolean

Return true if the file or directory path exists.

Parameters:

  • ftp_path (String)

    The virtual path

Returns:

  • (Boolean)

57
58
59
# File 'lib/ftpd/disk_file_system.rb', line 57

def exists?(ftp_path)
  File.exists?(expand_ftp_path(ftp_path))
end