Class: Net::FTP::List::Netware

Inherits:
Parser
  • Object
show all
Defined in:
lib/net/ftp/list/netware.rb

Overview

Parse Netware like FTP LIST entries.

MATCHES

d [RWCEAFMS] dpearce                          512 Jun 27 23:46 public.www

Constant Summary collapse

REGEXP =

Stolen straight from the ASF’s commons Java FTP LIST parser library. svn.apache.org/repos/asf/commons/proper/net/trunk/src/java/org/apache/commons/net/ftp/

/^
  (d|-){1}\s+
  \[(.*?)\]\s+
  (\S+)\s+(\d+)\s+
  (\S+\s+\S+\s+((\d+:\d+)|(\d{4})))
  \s+(.*)
$/x.freeze

Class Method Summary collapse

Class Method Details

.parse(raw, timezone: :utc) ⇒ Object

Parse a Netware like FTP LIST entries.



21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/net/ftp/list/netware.rb', line 21

def self.parse(raw, timezone: :utc)
  match = REGEXP.match(raw.strip) or return false
  type  = match[1] == 'd' ? :dir : :file

  emit_entry(
    raw,
    mtime: parse_time(match[5], timezone: timezone),
    filesize: match[4].to_i,
    type: type,
    basename: match[9],
  )
end