class FtpParadise::Entry

Constants

DEFAULT_INPUT_FOR_THE_ENTRY_CALLED_RAW
#

FtpParadise::Entry::DEFAULT_INPUT_FOR_THE_ENTRY_CALLED_RAW

#

Attributes

basename[R]
device[R]
raw[R]
server_type[R]

Public Class Methods

new( input_string = ARGV, run_already = true ) click to toggle source
#

initialize

#
# File lib/ftp_paradise/entry/entry.rb, line 42
def initialize(
    input_string = ARGV,
    run_already  = true
  )
  reset
  set_raw(input_string)
  run if run_already
end
parse(i) click to toggle source
#

Entry.parse

#
# File lib/ftp_paradise/entry/entry.rb, line 278
def self.parse(i)
  new(i)
end

Public Instance Methods

determine_basename() click to toggle source
#

determine_basename

#
# File lib/ftp_paradise/entry/entry.rb, line 203
def determine_basename
  if @splitted
    @basename = @splitted.last
  else
    @basename = raw
  end
end
determine_filesize() click to toggle source
#

determine_filesize

This method will determine the filesize of our remote entry at hand. The input may look like this:

"-rw-rw-rw-   1 web      netscape    10548 May 30  2011 Chained.rb"

So when we split on ' ', the filesize will be entry number 4.

#
# File lib/ftp_paradise/entry/entry.rb, line 192
def determine_filesize
  if @splitted
    set_filesize(@splitted[4])
  else
    set_filesize(0)
  end
end
determine_timestamp() click to toggle source
#

determine_timestamp

#
# File lib/ftp_paradise/entry/entry.rb, line 168
def determine_timestamp
  if @splitted
    new_string = "#{@splitted[5]}-#{@splitted[6]}-#{@splitted[7]}"
    @mtime = new_string
  else
    @mtime = nil
  end
end
dir()
Alias for: directory?
dir?()
Alias for: directory?
directory?() click to toggle source
#

directory?

#
# File lib/ftp_paradise/entry/entry.rb, line 236
def directory?
  @directory
end
Also aliased as: dir, dir?
file()
Alias for: file?
file?() click to toggle source
#

file?

#
# File lib/ftp_paradise/entry/entry.rb, line 258
def file?
  @file
end
Also aliased as: file
file_or_directory()
Alias for: file_or_directory?
file_or_directory?() click to toggle source
#

file_or_directory?

This will return the string 'file' or the string 'directory', depending on whether we have a file or a directory.

#
# File lib/ftp_paradise/entry/entry.rb, line 224
def file_or_directory?
  if is_directory?
    'directory'
  else
    'file'
  end
end
Also aliased as: file_or_directory, type?
filename?()
Alias for: name
filesize()
Alias for: filesize?
filesize?() click to toggle source
#

filesize?

#
# File lib/ftp_paradise/entry/entry.rb, line 119
def filesize?
  @filesize
end
Also aliased as: filesize
is_a_directory?() click to toggle source
#

is_a_directory?

#
# File lib/ftp_paradise/entry/entry.rb, line 214
def is_a_directory?
  @basename.end_with?('/') or @raw.start_with?('d')
end
Also aliased as: is_directory?
is_a_file?() click to toggle source
#

is_a_file?

#
# File lib/ftp_paradise/entry/entry.rb, line 244
def is_a_file?
  !is_a_directory?
end
is_directory() click to toggle source
#

is_directory

Setter method to determine that we have found a directory.

#
# File lib/ftp_paradise/entry/entry.rb, line 142
def is_directory
  @symlink   = false
  @file      = false
  @device    = false
  @directory = true
end
is_directory?()
Alias for: is_a_directory?
last() click to toggle source
#

last

This should return the name of the file.

#
# File lib/ftp_paradise/entry/entry.rb, line 90
def last
  @splitted.last
end
line?() click to toggle source
#

line?

#
# File lib/ftp_paradise/entry/entry.rb, line 152
def line?
  @raw
end
mtime()
Alias for: mtime?
mtime?() click to toggle source
#

mtime?

#
# File lib/ftp_paradise/entry/entry.rb, line 251
def mtime?
  @mtime
end
Also aliased as: mtime
name() click to toggle source
#

name

#
# File lib/ftp_paradise/entry/entry.rb, line 159
def name
  @basename
end
Also aliased as: return_name, name?, filename?
name?()
Alias for: name
parsed_timestamp?() click to toggle source
#

parsed_timestamp?

#
# File lib/ftp_paradise/entry/entry.rb, line 180
def parsed_timestamp?
  Time.parse(@mtime)
end
raw?()
Alias for: raw_input?
raw_input?() click to toggle source
#

raw_input?

#
# File lib/ftp_paradise/entry/entry.rb, line 74
def raw_input?
  @raw
end
Also aliased as: raw?
reset() click to toggle source
#

reset

#
# File lib/ftp_paradise/entry/entry.rb, line 104
def reset
  @basename    = '.'
  @filesize    = 0 # Is 0 initially.
  @mtime       = Time.parse('2014-10-25 00:00:00 +0200') # <- This requires time.
  @raw         = DEFAULT_INPUT_FOR_THE_ENTRY_CALLED_RAW
  @server_type = 'Unix'
  @symlink     = false
  @directory   = true
  @file        = false
  @device      = false
end
return_name()
Alias for: name
run() click to toggle source
#

run

#
# File lib/ftp_paradise/entry/entry.rb, line 265
def run
  case @raw[0,1]
  when 'd' # If it starts with a 'd', then it is a directory.
    is_directory
  end
  determine_basename
  determine_timestamp
  determine_filesize
end
set_filesize(i) click to toggle source
#

set_filesize

#
# File lib/ftp_paradise/entry/entry.rb, line 126
def set_filesize(i)
  @filesize = i.to_i
end
set_raw(i) click to toggle source
#

set_raw

#
# File lib/ftp_paradise/entry/entry.rb, line 54
def set_raw(i)
  i = i.first if i.is_a? Array
  @raw = i.to_s.rstrip
  if @raw.include? ' '
    set_splitted(
      @raw.split(' ')
    ) # Determine @splitted as well here.
  else
    # ===================================================================== #
    # This is for entries that may be short, such as the changed
    # directory-display for FTP data.
    # ===================================================================== #
    @raw = @raw.rjust(67)
    set_splitted(nil)
  end
end
set_splitted(i) click to toggle source
#

set_splitted

#
# File lib/ftp_paradise/entry/entry.rb, line 81
def set_splitted(i)
  @splitted = i
end
show_the_line() click to toggle source
#

show_the_line

#
# File lib/ftp_paradise/entry/entry.rb, line 133
def show_the_line
  e @raw
end
type?()
Alias for: file_or_directory?