Using Rails App (Models) in my Ruby script.

Discussion in 'Ruby' started by Nick da G, Sep 19, 2008.

  1. Nick da G

    Nick da G Guest

    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-forum.com/.
     
    Nick da G, Sep 19, 2008
    #1
    1. Advertising

  2. Nick da G

    Todd Benson Guest

    On Fri, Sep 19, 2008 at 1:03 PM, 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?
    >
    > 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
     
    Todd Benson, Sep 19, 2008
    #2
    1. Advertising

  3. 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-forum.com/.
     
    Brian Candler, Sep 19, 2008
    #3
  4. Nick da G

    Nick da G Guest

    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-forum.com/.
     
    Nick da G, Sep 19, 2008
    #4
  5. Nick da G

    Nick da G Guest

    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-forum.com/.
     
    Nick da G, Sep 19, 2008
    #5
  6. Nick da G

    Nick da G Guest

    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-forum.com/.
     
    Nick da G, Sep 19, 2008
    #6
  7. Nick da G

    James Gray Guest

    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
     
    James Gray, Sep 19, 2008
    #7
  8. Nick da G

    Nick da G Guest

    Nick da G, Sep 19, 2008
    #8
    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. vinjvinj
    Replies:
    15
    Views:
    575
    Jeremy Sanders
    Nov 10, 2005
  2. Jean-Paul Calderone
    Replies:
    0
    Views:
    437
    Jean-Paul Calderone
    Nov 7, 2005
  3. David Heinemeier Hansson
    Replies:
    0
    Views:
    236
    David Heinemeier Hansson
    Dec 23, 2004
  4. libsfan01
    Replies:
    2
    Views:
    163
    Jan Svitok
    Feb 5, 2007
  5. Xeno Campanoli
    Replies:
    1
    Views:
    139
    Xeno Campanoli
    May 29, 2008
Loading...

Share This Page