has anyone implemented a failable dependency for Rake?

Discussion in 'Ruby' started by Larry Fast, Mar 31, 2007.

  1. Larry Fast

    Larry Fast Guest

    What I find myself writing in Rake is the following:

    task xyz => ['abc?'] do
    enc

    # test before proceeding
    task abc? do
    if !abc
    exit
    end
    end

    What I'm creating is failable dependencies. XYZ should not be executed
    unless abc succeeds. Unfortunately the structure I've shown stops on
    the first failure. What I'd like to do is report all failures but only
    execute if everything passes.

    This could be implemented by processing prerequisites until a prereq
    returns false. Any task containing any false prereqs would not be
    processed.

    Does this exist anywhere?

    Thanks,
    Larry Fast

    --
    Posted via http://www.ruby-forum.com/.
    Larry Fast, Mar 31, 2007
    #1
    1. Advertising

  2. Larry Fast

    Jim Weirich Guest

    Larry Fast wrote:
    > What I find myself writing in Rake is the following:
    >
    > task xyz => ['abc?'] do
    > enc
    >
    > # test before proceeding
    > task abc? do
    > if !abc
    > exit
    > end
    > end
    >
    > What I'm creating is failable dependencies. XYZ should not be executed
    > unless abc succeeds. Unfortunately the structure I've shown stops on
    > the first failure. What I'd like to do is report all failures but only
    > execute if everything passes.
    >
    > This could be implemented by processing prerequisites until a prereq
    > returns false. Any task containing any false prereqs would not be
    > processed.
    >
    > Does this exist anywhere?


    It's not directly supported by Rake.

    The way I think I would approach this is to let each of the
    prerequisites vote on whether the xyz task should run or not. The
    prereqs would register the voting with in some central location (e.g. a
    global or maybe some central voting object). I would then write the xyz
    task like this:

    task :xyz => [:abc?, :acb?] do
    if XYZ_SHOULD_RUN.ok?
    do_xyz_stuff
    end
    end

    This way all the prerequisites get a chance to run and the xyz task is
    responsible for detecting the vote.

    -- Jim Weirich

    --
    Posted via http://www.ruby-forum.com/.
    Jim Weirich, Apr 1, 2007
    #2
    1. Advertising

  3. Larry Fast

    Larry Fast Guest

    Jim Weirich wrote:

    > The way I think I would approach this is to let each of the
    > prerequisites vote on whether the xyz task should run or not. The
    > prereqs would register the voting with in some central location (e.g. a
    > global or maybe some central voting object). I would then write the xyz
    > task like this:
    >
    > task :xyz => [:abc?, :acb?] do
    > if XYZ_SHOULD_RUN.ok?
    > do_xyz_stuff
    > end
    > end
    >
    > This way all the prerequisites get a chance to run and the xyz task is
    > responsible for detecting the vote.
    >
    > -- Jim Weirich


    That's one step in the right direction but I have a few dozen of these.
    I'd like to inherit and extend the Rake::Task so I could write all my
    tasks as:

    task_failable :xyz => [...]

    Each action would be attempted only if no dependency had failed. BUT all
    the failures would be reported.

    This would be most important in a long build process. You walk away
    hoping it will complete. The next morning, most of it has completed and
    you can follow up on the errors. I suspect that's what file_tasks do
    but I have some non-file based testing to do.

    On the other hand, I may have just talked myself out of this approach.
    It may be easier to create files to represent the completion of these
    actions.

    Thanks,
    Larry Fast

    --
    Posted via http://www.ruby-forum.com/.
    Larry Fast, Apr 1, 2007
    #3
    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. Leif K-Brooks

    Has anyone implemented BASIC in Python?

    Leif K-Brooks, Aug 21, 2004, in forum: Python
    Replies:
    19
    Views:
    1,896
    John Tobler
    Aug 25, 2004
  2. Joe Van Dyk
    Replies:
    2
    Views:
    102
    Damphyr
    Jan 31, 2006
  3. peppermonkey
    Replies:
    1
    Views:
    242
    Gregory Brown
    Feb 10, 2007
  4. Adam Anderson
    Replies:
    1
    Views:
    129
    Adam Anderson
    Sep 19, 2007
  5. Peter Pk
    Replies:
    1
    Views:
    115
    Peter Pk
    Jan 15, 2009
Loading...

Share This Page