Sha256: e50d3eccddef77fd91d6b677a8ba3a717f37a14e80b576fcd06ab73c84f218c8

Contents?: true

Size: 1.49 KB

Versions: 4

Compression:

Stored size: 1.49 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 ar_loader:spree:products input=vendor/extensions/autotelik/fixtures/SiteSpreadsheetInfo.xls
#       => jruby -S rake ar_loader:spree:products input=C:\MyProducts.xls verbose=true
#
require 'ar_loader'
require 'product_loader'
require 'csv_loader'

namespace :ar_loader do

  namespace :spree do

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

      input = ENV['input']

      raise "USAGE: jruby -S rake  ar_loader: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

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

      ARLoader::MethodDetail.set_prefix('sku', args[:sku_prefix] ) if args[:sku_prefix]

      if(File.extname(input) == '.xls' and Guards::jruby?)
        loader = ARLoader::ProductLoader.new
      else
        loader = ARLoader::CSVLoader.new
      end

      puts "Loading from file: #{input}"

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

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ar_loader-1.0.0.0 tasks/spree/product_loader.rake
ar_loader-9.9.9 tasks/spree/product_loader.rake
ar_loader-0.0.9 tasks/spree/product_loader.rake
ar_loader-0.0.8 tasks/spree/product_loader.rake