Class: FileTransfer::Ftp
  
  
  
  Instance Attribute Summary
  
  Attributes inherited from Generic
  #host, #password, #port, #timeout_seconds, #username
  
    
      Instance Method Summary
      collapse
    
    
  
  
  
  
  
  
  
  
  
  Methods inherited from Generic
  #to_s
  Constructor Details
  
    
  
  
    #initialize(options = {})  ⇒ Ftp 
  
  
  
  
    
Returns a new instance of Ftp.
   
 
  
  
    | 
6
7
8 | # File 'lib/file_transfer/ftp.rb', line 6
def initialize(options = {})
  super(options)
end | 
 
  
 
  
    Instance Method Details
    
      
  
  
    #close  ⇒ Object 
  
  
  
  
    | 
59
60
61
62
63
64
65 | # File 'lib/file_transfer/ftp.rb', line 59
def close
  if @ftp && !@ftp.closed?
    timeout(30) do
      @ftp.close
    end
  end
end | 
 
    
      
  
  
    #download(from_path, to_path)  ⇒ Object 
  
  
  
  
    | 
31
32
33
34
35
36
37
38
39 | # File 'lib/file_transfer/ftp.rb', line 31
def download(from_path, to_path)
  from_path = split_path(from_path)
  connect if @ftp.closed?
  timeout(timeout_seconds) do
    @ftp.chdir from_path[:file_path]
    @ftp.getbinaryfile(to_path, from_path[:file_name])
    "#{from_path[:file_path]}/#{from_path[:file_name]}"
  end
end | 
 
    
      
  
  
    #exist?(file_path)  ⇒ Boolean 
  
  
  
  
    | 
51
52
53
54
55
56
57 | # File 'lib/file_transfer/ftp.rb', line 51
def exist?(file_path)
  connect if @ftp.closed?
  timeout(60) do
    result = @ftp.list "#{file_path}"
    result && result.size > 0
  end
end | 
 
    
      
  
  
    #list(dir, options = {})  ⇒ Object 
  
  
  
  
    | 
10
11
12
13
14
15
16
17
18
19
20 | # File 'lib/file_transfer/ftp.rb', line 10
def list(dir, options = {})
  connect if @ftp.closed?
  timeout(60) do
    @ftp.chdir dir
    result = @ftp.nlst
    if options.has_key? :file_type
      result = result.select { |file_name| file_name.end_with? options[:file_type] }
    end
    result
  end
end | 
 
    
      
  
  
    #move(from_path, to_path)  ⇒ Object 
  
  
  
  
    | 
41
42
43
44
45
46
47
48
49 | # File 'lib/file_transfer/ftp.rb', line 41
def move(from_path, to_path)
  from_path = split_path(from_path)
  to_path = split_path(to_path)
  connect if @ftp.closed?
  timeout(timeout_seconds) do
    @ftp.chdir from_path[:file_path]
    @ftp.rename from_path[:file_name], "#{to_path[:file_path]}/#{to_path[:file_name]}" if exist?("#{from_path[:file_name]}/#{from_path[:file_path]}")
  end
end | 
 
    
      
  
  
    #upload(from_path, to_path)  ⇒ Object 
  
  
  
  
    | 
22
23
24
25
26
27
28
29 | # File 'lib/file_transfer/ftp.rb', line 22
def upload(from_path, to_path)
  to_path = split_path(to_path)
  connect if @ftp.closed?
  timeout(timeout_seconds) do
    @ftp.chdir to_path[:file_path]
    @ftp.putbinaryfile(from_path)
  end
end |