class Restforce::Bulk::Zipper

Attributes

content_type[RW]
files_mapping[RW]

Public Class Methods

new(files_mapping, content_type=:zip_xml) click to toggle source
# File lib/restforce/bulk/zipper.rb, line 6
def initialize(files_mapping, content_type=:zip_xml)
  self.files_mapping = files_mapping
  self.content_type  = content_type
end

Public Instance Methods

zip() click to toggle source
# File lib/restforce/bulk/zipper.rb, line 11
def zip
  ::Zip::File.open(output_filename, ::Zip::File::CREATE) do |zip_file|
    zip_file.get_output_stream('request.txt') do |io|
      io.write builder.create_request_txt(files_mapping)
    end

    files_mapping.each do |mapping|
      zip_file.add(mapping[:filename], mapping[:full_filename])
    end
  end

  output_filename
end

Protected Instance Methods

builder() click to toggle source
# File lib/restforce/bulk/zipper.rb, line 27
def builder
  @builder ||= Restforce::Bulk::Builder.const_get(content_type.to_s.camelize).new('insert')
end
output_filename() click to toggle source
# File lib/restforce/bulk/zipper.rb, line 31
def output_filename
  @output_filename ||= "/tmp/#{SecureRandom.hex}.zip"
end