class Net::SFTP::Protocol::V04::Attributes

  1. lib/net/sftp/protocol/04/attributes.rb
Parent: V04

A class representing the attributes of a file or directory on the server. It may be used to specify new attributes, or to query existing attributes. This particular class is specific to versions 4 and 5 of the SFTP protocol.

To specify new attributes, just pass a hash as the argument to the constructor. The following keys are supported:

  • :type

    the type of the item (integer, one of the T_ constants)

  • :size

    the size of the item (integer)

  • :uid

    the user-id that owns the file (integer)

  • :gid

    the group-id that owns the file (integer)

  • :owner

    the name of the user that owns the file (string)

  • :group

    the name of the group that owns the file (string)

  • :permissions

    the permissions on the file (integer, e.g. 0755)

  • :atime

    the access time of the file (integer, seconds since epoch)

  • :#atime_nseconds

    the nanosecond component of atime (integer)

  • :createtime

    the time at which the file was created (integer, seconds since epoch)

  • :#createtime_nseconds

    the nanosecond component of createtime (integer)

  • :mtime

    the modification time of the file (integer, seconds since epoch)

  • :#mtime_nseconds

    the nanosecond component of mtime (integer)

  • :acl

    an array of ACL entries for the item

  • :extended

    a hash of name/value pairs identifying extended info

Likewise, when the server sends an Attributes object, all of the above attributes are exposed as methods (though not all will be set with non-nil values from the server).

Constants

ACL = Struct.new(:type, :flag, :mask, :who)  

A simple struct for representing a single entry in an Access Control List. (See Net::SFTP::Constants::ACE)

F_ACCESSTIME = 0x00000008  
F_ACL = 0x00000040  
F_CREATETIME = 0x00000010  
F_MODIFYTIME = 0x00000020  
F_OWNERGROUP = 0x00000080  
F_SUBSECOND_TIMES = 0x00000100  

Attributes

acl [RW]

The array of access control entries for this item.

atime_nseconds [RW]

The nanosecond component of the access time.

createtime [RW]

The creation time of the remote item, in seconds since the epoch.

createtime_nseconds [RW]

The nanosecond component of the creation time.

group [W]

The group of the item on the remote server, as a string.

mtime_nseconds [RW]

The nanosecond component of the modification time.

owner [W]

The owner of the item on the remote server, as a string.

type [RW]

The type of the item on the remote server. Must be one of the T_* constants.

Public Class methods

new (attributes={})

Create a new Attributes instance with the given attributes. The following keys are supported:

  • :type

    the type of the item (integer, one of the T_ constants)

  • :size

    the size of the item (integer)

  • :uid

    the user-id that owns the file (integer)

  • :gid

    the group-id that owns the file (integer)

  • :owner

    the name of the user that owns the file (string)

  • :group

    the name of the group that owns the file (string)

  • :permissions

    the permissions on the file (integer, e.g. 0755)

  • :atime

    the access time of the file (integer, seconds since epoch)

  • :#atime_nseconds

    the nanosecond component of atime (integer)

  • :createtime

    the time at which the file was created (integer, seconds since epoch)

  • :#createtime_nseconds

    the nanosecond component of createtime (integer)

  • :mtime

    the modification time of the file (integer, seconds since epoch)

  • :#mtime_nseconds

    the nanosecond component of mtime (integer)

  • :acl

    an array of ACL entries for the item

  • :extended

    a hash of name/value pairs identifying extended info

All of them default to nil if omitted, except for type, which defaults to T_REGULAR.

[show source]
# File lib/net/sftp/protocol/04/attributes.rb, line 124
def initialize(attributes={})
  super
  attributes[:type] ||= T_REGULAR
end