# from David Golden
# on Thursday 10 September 2009 12:57:

>(1b) For either choice in #1a, how should the behavior of “bundle_inc”
>change depending on whether $source/inc exists or is missing?

I think this asks the wrong question, but all of the questions are 
somewhat tangled-up around what or whether to do with existing data and 
how to turn off the DWIM.

I would prefer to say:

  if(-e "inc/latest.pm") { warn "you're on your own!\n" }
  else {
    inc::latest->write("$distdir/inc/latest.pm")
    inc::latest->bundle_module($_, $distdir)
      for(inc::latest->loaded_modules)
  }

But obviously we have to answer the other question "correctly" to even 
get to this question.  That is: that it should only automatically write 
the bundles in $distdir.

If you write anything in $source, you have to have some *other* big 
switch to turn all of the DWIM behavior off completely.  But then you 
have to have some little switches if some parts are not to be DWIM'd 
on.

If you go with the -e "inc/latest.pm", then anything else in inc/ is 
literal stuff.  (And anything that clashes with the DWIM is an error.)

I'm leaning toward all-or-nothing here.  That is, either you let M::B do 
it all or M::B lets you do it all.  Anything else seems like too much 
logic for what should IMO be a very minimal component.

For a hastily-written version, see http://pasta.test-smoke.org/100 -- 
this is not completely complete, but helps explain the code snippet 
above.

--Eric
-- 
"It works better if you plug it in!"
--Sattinger's Law
---------------------------------------------------
    http://scratchcomputing.com
---------------------------------------------------

Reply via email to