class ShippingMaterials::Packager
Attributes
groups[RW]
objects[RW]
template[RW]
Public Class Methods
new()
click to toggle source
# File lib/shipping_materials/packager.rb, line 7 def initialize @groups = [] @sorters = {} end
Public Instance Methods
group(basename, &block)
click to toggle source
# File lib/shipping_materials/packager.rb, line 36 def group(basename, &block) group = Group.new(basename, @objects) group.instance_eval(&block) if block @groups << group end
html(template)
click to toggle source
# File lib/shipping_materials/packager.rb, line 26 def html(template) @packing_slip_template = template @packing_slip_ext = :html end
package(objects, &block)
click to toggle source
# File lib/shipping_materials/packager.rb, line 12 def package(objects, &block) @objects = objects instance_eval(&block) @groups.each do |group| sort_group(group) create_packing_slips(group) create_csvs(group) end if Config.use_gzip? Storage.write_gzip rescue nil end self end
pdf(template)
click to toggle source
# File lib/shipping_materials/packager.rb, line 31 def pdf(template) @packing_slip_template = template @packing_slip_ext = :pdf end
Private Instance Methods
create_csvs(group)
click to toggle source
# File lib/shipping_materials/packager.rb, line 54 def create_csvs(group) group.csvs.each do |csv| filename = Storage.filenameize(group.basename) + '.' + csv.extension Storage.write_file(filename, csv.generate(group.objects)) end end
create_packing_slips(group)
click to toggle source
# File lib/shipping_materials/packager.rb, line 48 def create_packing_slips(group) packing_slip = PackingSlips.new(group.objects, @packing_slip_template) filename = "#{group.basename}.#{@packing_slip_ext}" Storage.send(:"write_#{@packing_slip_ext}", filename , packing_slip.to_s) end
sort_group(group)
click to toggle source
# File lib/shipping_materials/packager.rb, line 43 def sort_group(group) group.sorters ||= self.sorters group.sort! end