Sha256: 7fef372ddb7ef3ee00baa138bc0a6a5a6e0a113c74932ac51943434e1f02231b

Contents?: true

Size: 1.34 KB

Versions: 2

Compression:

Stored size: 1.34 KB

Contents

# Copyright:: (c) Autotelik Media Ltd 2011
# Author ::   Tom Statter
# Date ::     Feb 2011
# License::   MIT. Free, Open Source.
#
# REQUIRES:   JRuby access to Java
#
# Usage::
#
# e.g.  => jruby -S rake datashift:spree:products input=vendor/extensions/autotelik/fixtures/SiteSpreadsheetInfo.xls
#       => jruby -S rake datashift:spree:products input=C:\MyProducts.xls verbose=true
#
require 'datashift'

namespace :datashift do

  namespace :spree do

    desc "Populate Spree Product/Variant data from .xls (Excel) or CSV file"
    task :products, [:input, :verbose, :sku_prefix] => :environment do |t, args|

      input = ENV['input']

      raise "USAGE: jruby -S rake  datashift:spree:products input=excel_file.xls" unless input
      raise "ERROR: Could not find file #{args[:input]}" unless File.exists?(input)

      require 'product_loader'

      # COLUMNS WITH DEFAULTS - TODO create YAML configuration file to drive defaults etc

      loader = DataShift::ProductLoader.new

      loader.set_default_value('available_on', Time.now.to_s(:db) )
      loader.set_default_value('cost_price', 0.0 )

      loader.set_prefix('sku', args[:sku_prefix] ) if(args[:sku_prefix])
      
      puts "Loading from file: #{input}"

      loader.perform_load(input, :mandatory => ['sku', 'name', 'price'] )
    end
  end 

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
datashift-0.2.1 tasks/spree/product_loader.rake
datashift-0.0.1 tasks/spree/product_loader.rake