Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   Ruby (http://www.velocityreviews.com/forums/f66-ruby.html)
-   -   How to use ruby, csv and webservice? Need a direction. (http://www.velocityreviews.com/forums/t853533-how-to-use-ruby-csv-and-webservice-need-a-direction.html)

Nick da G 10-08-2008 05:07 PM

How to use ruby, csv and webservice? Need a direction.
 
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
do.




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 http://www.ruby-forum.com/.


Shajith 10-08-2008 05:23 PM

Re: How to use ruby, csv and webservice? Need a direction.
 
[Note: parts of this message were removed to make it a legal post.]

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


Does open-uri help?

http://www.ruby-doc.org/stdlib/libdo...s/OpenURI.html

Something like this:

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

HTH,
Shajith


Nick da G 10-08-2008 07:05 PM

Re: How to use ruby, csv and webservice? Need a direction.
 
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
File.open('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 File.open(){} - takes each line of
csv and writes it to file. Am I wrong?
--
Posted via http://www.ruby-forum.com/.



All times are GMT. The time now is 04:14 PM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.