class XmlConv::Util::DestinationFtp

Public Class Methods

new(uri = URI.parse('ftp:/'), tmp = nil) click to toggle source
Calls superclass method XmlConv::Util::Destination::new
# 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

Public Instance Methods

deliver_to_connection(connection, delivery, idx=nil) click to toggle source
# 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) click to toggle source
# 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