Class: XmlConv::Util::DestinationFtp

Inherits:
RemoteDestination show all
Defined in:
lib/xmlconv/util/destination.rb

Constant Summary

Constants inherited from Destination

XmlConv::Util::Destination::STATUS_COMPARABLE

Instance Attribute Summary

Attributes inherited from RemoteDestination

#transport

Attributes inherited from Destination

#path, #status, #uri

Instance Method Summary collapse

Methods inherited from RemoteDestination

#deliver, #forget_credentials!, #host, #host=, #path, #path=, #uri=

Methods inherited from Destination

book, #deliver, #forget_credentials!, #sanitize, #status_comparable, #update_status

Constructor Details

#initialize(uri = URI.parse('ftp:/'), tmp = nil) ⇒ DestinationFtp

Returns a new instance of DestinationFtp.



124
125
126
127
128
129
# File 'lib/xmlconv/util/destination.rb', line 124

def initialize(uri = URI.parse('ftp:/'), tmp = nil)
	super()
     @tmp = tmp
	@uri = uri
     @transport = Net::FTP
end

Instance Method Details

#deliver_to_connection(connection, delivery, idx = nil) ⇒ Object



136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
# File 'lib/xmlconv/util/destination.rb', line 136

def deliver_to_connection(connection, delivery, idx=nil)
  if(delivery.is_a?(Array))
    #delivery.each_with_index { |part, idx|
    delivery.each { |part|
      #deliver_to_connection(connection, part, idx)
      deliver_to_connection(connection, part)
    }
  else
    fh = Tempfile.new('xmlconv')
    fh.puts(delivery)
    fh.flush
    target = delivery.filename
#          if(idx)
      #targidxet = sprintf("%03i_%s", idx, target)
#            target.gsub!(/\.dat/, "%03i.dat" % idx)
#            target.gsub!(/(CO_\d{13})/, '\1%02d' % idx)
#          end
    if(@tmp)
      tmp = File.join(@tmp.path, target)
      connection.puttextfile(fh.path, tmp)
      connection.rename(tmp, target)
    else
      connection.puttextfile(fh.path, target)
    end
    fh.close!
    @status = :ftp_ok
  end
end

#do_deliver(delivery) ⇒ Object



130
131
132
133
134
135
# File 'lib/xmlconv/util/destination.rb', line 130

def do_deliver(delivery)
  @transport.open(@uri.host, @uri.user, @uri.password) do |conn|
    conn.chdir(@uri.path)
    deliver_to_connection(conn, delivery)
  end
end