Class: Net::FTP::List::Rumpus

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

Overview

Parse Rumpus FTP LIST entries.

MATCHES

drwxr-xr-x folder 0 Nov 30 10:03 houdini -rw-r–r– 0 101426 101426 Jun 7 2008 imap with spaces.rb

Constant Summary collapse

REGEXP =
/^
  ([drwx-]{10})\s+
  (folder|0\s+\d+)\s+
  (\d+)\s+
  (\w+)\s+
  (\d{1,2})\s+
  (\d{2}:\d{2}|\d{4})\s+
  (.+)
$/x.freeze

Class Method Summary collapse

Class Method Details

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

Parse a Rumpus FTP LIST entry.



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

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

  emit_entry(
    raw,
    basename: match[7],
    mtime: parse_time(match[4..6].join(' '), timezone: timezone),
    type: type,
    filesize: match[3].to_i,
  )
end