How to use ruby, csv and webservice? Need a direction.

Discussion in 'Ruby' started by Nick da G, Oct 8, 2008.

  1. Nick da G

    Nick da G Guest

    Hi, All.

    I'm just a bit confused and need some direction here.

    I have an app that does inventory and I also created a bunch of reports
    using great Ruport Library. All of my reports can produce: xls, csv, pdf
    & html.

    What I'm trying to do is to have a scheduled ruby script on a separate
    scheduling machine that will pull one of the reports in CSV format and
    place it on HD for processing by our old DBF program.

    There are two approaches:

    1) I can have a copy of my app running on my scheduling computer that I
    will connect to the central DB do it's processing and save the file
    locally where it's needed. That's how I'm doing right now.

    (+ I don't stress production server with reports)

    2) My report urls are of this type:

    http://myapp/reports/csv_export/2 - which spits out a csv file back at
    you for report #2

    So I was thinking that I can just point a ruby script to that url, grab
    the file and place it on HD.

    (+ This way I don't need to 2 copies of my app. Better maintainability)

    I want to go with the second approach - but here is where I'm stuck and
    need just a pointer. I'm sure it's obvious but I just don't know what to

    How do I call that url from my ruby scrip and how do I process that csv
    file when I get it back? Everything I red talks about using xmlrpc or
    soap - but I don't want to process that data again on a scheduling
    computer - when it's already is being given to me in the proper format?
    How do I handle that?

    If ruby has something like linux's "wget" - that would be great - I
    think that would solve my problem.

    ( the reason I can't use system wget is my scheduling pc - is a windows
    xp box - it has to be for old DBF stuff to work)
    Posted via
    Nick da G, Oct 8, 2008
    1. Advertising

  2. Nick da G

    Shajith Guest

    [Note: parts of this message were removed to make it a legal post.]

    On Wed, Oct 8, 2008 at 12:07 PM, Nick da G <> wrote:
    > If ruby has something like linux's "wget" - that would be great - I
    > think that would solve my problem.

    Does open-uri help?

    Something like this:

    require 'open-uri'
    open("http://myapp/reports/csv_export/2") do |csv|
    #Write the csv report to file?

    Shajith, Oct 8, 2008
    1. Advertising

  3. Nick da G

    Nick da G Guest

    Thanks, Shajith.

    That's uber cool.

    I couldn't get your example working so I had to redo it slightly. But
    THANK YOU for the pointer - that was exactly what I needed.

    For anyone else looking here is what I ended up doing

    require 'open-uri'
    url = 'http://localhost:3000/report_details/csv_export/2'
    csv = open(url,
    :http_basic_authentication=>['username','password']).read'exports.csv','w') { |f| f.write(csv)}

    On a side note I was wondering how would pipe output of of open(url)
    straight into a file? As I understand{} - takes each line of
    csv and writes it to file. Am I wrong?
    Posted via
    Nick da G, Oct 8, 2008
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Celia Oblinger

    Need Direction on WHAT to Implement....

    Celia Oblinger, Jan 16, 2004, in forum: ASP .Net
    Steve C. Orr [MVP, MCSD]
    Jan 16, 2004
  2. dx
    Lucas Tam
    Mar 25, 2005
  3. dx
  4. Peter
    Oct 9, 2005
  5. dwknapp
    Apr 20, 2004

Share This Page