[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Using Rails App (Models) in my Ruby script.

Nick da G

9/19/2008 6:04:00 PM

Hi, All.

I'm writing a script that's going to run on schedule to pull some info
from a db and dump it into a csv to be ftped

And a similar script to process a csv/excel file we get from a vendor to
put in our db.

I can use like Ruby DBI or something.
But I'd much rather use ActiveRecord. Here is the question.

How do I let my ruby script know to include all of my rails goodies.
Like the Model's I already created?

I tried to write a sample where I connect to a db using activerecord and
it works, but it looks like I will have to recreate all of my models in
my Ruby script? Which is not a biggie - jsut copy and paste, but I'd
hate to maintain 2 versions of models.

Also will I run into any problems with my restfull_authentication plugin
doing that if it is possible to do at all (this might be a question for
a Rails list thou)


Thank you
--
Posted via http://www.ruby-....

8 Answers

Todd Benson

9/19/2008 6:12:00 PM

0

On Fri, Sep 19, 2008 at 1:03 PM, Nick da G <nick.gorbikoff@gmail.com> wrote:
> Hi, All.
>
> I'm writing a script that's going to run on schedule to pull some info
> from a db and dump it into a csv to be ftped
>
> And a similar script to process a csv/excel file we get from a vendor to
> put in our db.
>
> I can use like Ruby DBI or something.
> But I'd much rather use ActiveRecord. Here is the question.
>
> How do I let my ruby script know to include all of my rails goodies.
> Like the Model's I already created?
>
> I tried to write a sample where I connect to a db using activerecord and
> it works, but it looks like I will have to recreate all of my models in
> my Ruby script? Which is not a biggie - jsut copy and paste, but I'd
> hate to maintain 2 versions of models.
>
> Also will I run into any problems with my restfull_authentication plugin
> doing that if it is possible to do at all (this might be a question for
> a Rails list thou)

You might be able to simple load them (load '/dir_path/my_model.rb').
You can simply get a list of the Model file names, and iterate through
them, loading each one. I've tested Models in irb like that. YMMV.

Todd

Brian Candler

9/19/2008 7:50:00 PM

0

Nick da G wrote:
> Hi, All.
>
> I'm writing a script that's going to run on schedule to pull some info
> from a db and dump it into a csv to be ftped
>
> And a similar script to process a csv/excel file we get from a vendor to
> put in our db.
>
> I can use like Ruby DBI or something.
> But I'd much rather use ActiveRecord. Here is the question.
>
> How do I let my ruby script know to include all of my rails goodies.
> Like the Model's I already created?

script/runner

(also script/console if you want to have an IRb shell with all the rails
goodies loaded)
--
Posted via http://www.ruby-....

Nick da G

9/19/2008 8:01:00 PM

0

Brian Candler wrote:
> Nick da G wrote:
>> Hi, All.
>>
>> I'm writing a script that's going to run on schedule to pull some info
>> from a db and dump it into a csv to be ftped
>>
>> And a similar script to process a csv/excel file we get from a vendor to
>> put in our db.
>>
>> I can use like Ruby DBI or something.
>> But I'd much rather use ActiveRecord. Here is the question.
>>
>> How do I let my ruby script know to include all of my rails goodies.
>> Like the Model's I already created?
>
> script/runner
>
> (also script/console if you want to have an IRb shell with all the rails
> goodies loaded)

Hi Brian, thanks for the reply but I guess I didn't make myself clear.

script/console would load an interactive console - that's waiting for
my input. Not sure how to I would interact with that from my ruby progam
and how to load it from my ruby script.

I looked into script/runner - but as I understand it is for running
Background processing from your rails app - like when you want to
process an uploaded video. In anyways I was not able to find a primer
that would show how to connect to it from my ruby script - the one that
is produced from script/runner -h - doesn't work for me on Mac OS and I
can't find any sensible tutorials or examples.

What I want is to be able to do is : just load some models from my rails
app. Like Product model. so that in my Ruby script I can just do p =
Product.find(2), instead of running DBI code.

Hope that's clearer.

P.S.:
Brian do you know of any links or books that would talk more about
scrip/runner - I obviously already looked at api and rails wiki.
--
Posted via http://www.ruby-....

matu

9/19/2008 9:19:00 PM

0

Nick da G wrote:

> Hi, All.
>
> I'm writing a script that's going to run on schedule to pull some info
> from a db and dump it into a csv to be ftped
>
> And a similar script to process a csv/excel file we get from a vendor to
> put in our db.

just require boot.rb and environment.rb (don't forget to set rails_env to
production/development first) from your scrips, and all your models will be
available in your ruby script.

Nick da G

9/19/2008 9:44:00 PM

0

Ok I just did a search on Ruby Forums and I think I found what I needed.
Thank Brian for sending me in a right direction.


It also looks like my error was related to Mac OS . I tried same code at
work on my XP box and it works now.
Damn I thought I was going crazy.

Thanks for the help thou.


for anyone else looking to setup scheduling on a Windows box for a ruby
script.

Just make your task call
(pass it environment if you want)(and then pass it your great ruby
script - make sure you use aboslute paths )

ruby c:\path to your great rails app\script\runner c:\my great ruby
scripts folder\cron.rb
(or whatever you want to call it. I would suggect to use no spaces in
the folder names - other wise you might need to do fiddle with the extra
quotes and it's annoying)

Alternatively you can setup a .bat file ( if you want to do some extra
stuff in windows batch mode - like driving yourself crazy or something)
--
Posted via http://www.ruby-....

Nick da G

9/19/2008 9:46:00 PM

0

Also this method works cool for scheduled PDF printing - just printed my
first automated invoice, generated from rails to PDF:Writer to color
printer) - work like a charm. I might need to switch it to Linux later,
if we do a lot of heavy printing.
--
Posted via http://www.ruby-....

James Gray

9/19/2008 9:49:00 PM

0

On Sep 19, 2008, at 4:12 PM, matu wrote:

> Nick da G wrote:
>
>> Hi, All.
>>
>> I'm writing a script that's going to run on schedule to pull some
>> info
>> from a db and dump it into a csv to be ftped
>>
>> And a similar script to process a csv/excel file we get from a
>> vendor to
>> put in our db.
>
> just require boot.rb and environment.rb

environment.rb required boot.rb for you, so it's all you need.

James Edward Gray II


Nick da G

9/19/2008 9:59:00 PM

0

James & matu

thanks for pointers
--
Posted via http://www.ruby-....