FasterCVS Question/Problem - RUBY

This is a discussion on FasterCVS Question/Problem - RUBY ; Hello- I'm using FasterCSV to export order records for our fulfillment partner. Here's a boiled-down snippet of my code: FasterCSV.open(filename, "w", :encoding => 'N') do |csv| orders.each do |order| order.items.each do |item| csv << [ item.sku.sku, item.quantity, order.customer.first_name, order.customer.last_name ] ...

+ Reply to Thread
Results 1 to 4 of 4

FasterCVS Question/Problem

  1. Default FasterCVS Question/Problem

    Hello-

    I'm using FasterCSV to export order records for our fulfillment partner.
    Here's a boiled-down snippet of my code:

    FasterCSV.open(filename, "w", :encoding => 'N') do |csv|
    orders.each do |order|
    order.items.each do |item|
    csv << [
    item.sku.sku,
    item.quantity,
    order.customer.first_name,
    order.customer.last_name
    ]
    end
    end
    end

    If I had one order with two items, I'd expect the output to look like
    this:

    SKU001,1,John,Smith
    SKU002,1,John,Smith

    However, the output actually looks like this:

    "SKU001,SKU002",1,John,Smith

    It seems to be taking the common information and collapsing it onto a
    single row. Does anyone know how to get the output to resemble what I
    was expecting?

    Thanks in advance,
    Eric
    --
    Posted via http://www.ruby-forum.com/.


  2. Default Re: FasterCVS Question/Problem

    On Nov 6, 2008, at 3:31 PM, Eric Marthinsen wrote:

    > Hello-


    Howdy.

    > I'm using FasterCSV to export order records for our fulfillment
    > partner.
    > Here's a boiled-down snippet of my code:
    >
    > FasterCSV.open(filename, "w", :encoding => 'N') do |csv|
    > orders.each do |order|
    > order.items.each do |item|
    > csv << [
    > item.sku.sku,


    This line seems fishy. You call sku() twice here.

    >
    > item.quantity,
    > order.customer.first_name,
    > order.customer.last_name
    > ]
    > end
    > end
    > end
    >
    > If I had one order with two items, I'd expect the output to look like
    > this:
    >
    > SKU001,1,John,Smith
    > SKU002,1,John,Smith
    >
    > However, the output actually looks like this:
    >
    > "SKU001,SKU002",1,John,Smith
    >
    > It seems to be taking the common information and collapsing it onto a
    > single row. Does anyone know how to get the output to resemble what I
    > was expecting?


    I expect the output to be what you so as well. I ran this code as saw
    the output we both expected:

    #!/usr/bin/env ruby -wKU

    require "rubygems"
    require "faster_csv"

    Customer = Struct.new(:first_name, :last_name)
    Order = Struct.new(:customer, :items)
    Item = Struct.new(:sku, :quantity)

    customer = Customer.new("John", "Smith")
    orders = [Order.new(customer, %w[SKU001 SKU002].map { |s|
    Item.new(s, 1) })]

    FasterCSV.open("example.csv", "w", :encoding => "N") do |csv|
    orders.each do |order|
    order.items.each do |item|
    csv << [ item.sku,
    item.quantity,
    order.customer.first_name,
    order.customer.last_name ]
    end
    end
    end

    __END__

    Does that help?

    James Edward Gray II


  3. Default Re: FasterCVS Question/Problem

    Hi James-

    Thanks for your reply (and the great library). It turns out this one was
    human error. The FasterCSV library is working flawlessly. Someone had
    entered the string "SKU001,SKU002" as the sku, so the output is exactly
    what one would expect it to be. Incidentally, I called sku twice because
    My Item object has a Sku child which has a sku accessor. Not the best
    naming convention.

    Regards,
    Eric
    --
    Posted via http://www.ruby-forum.com/.


  4. Default Re: FasterCVS Question/Problem

    On Nov 7, 2008, at 2:53 PM, Eric Marthinsen wrote:

    > Hi James-
    >
    > Thanks for your reply (and the great library). It turns out this one
    > was
    > human error. The FasterCSV library is working flawlessly. Someone had
    > entered the string "SKU001,SKU002" as the sku, so the output is
    > exactly
    > what one would expect it to be. Incidentally, I called sku twice
    > because
    > My Item object has a Sku child which has a sku accessor. Not the best
    > naming convention.


    I'm glad to hear that you got it figured out. Good luck with the
    project.

    James Edward Gray II


+ Reply to Thread