<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">
<br><br><div>Hi people, just thought I'd mumble out my thoughts on merb's apps directory structure and config concepts and see what other people are feeling...</div><div><br></div><div><br class="webkit-block-placeholder"></div><div>the <b>app</b> dir: </div><div><span class="Apple-tab-span" style="white-space:pre">        </span>mvc/application is layed out as expected....maybe</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>without the mailer by default (another discussion)<br class="webkit-block-placeholder"></div><div><br class="webkit-block-placeholder"></div><div>the <b>config</b> dir:</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>I really think that it's confusing to have such a </div><div><span class="Apple-tab-span" style="white-space:pre">        </span>mixture of ways to configure some of the settings<br class="webkit-block-placeholder"></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>merb.yml, 3xenvironment .rb files, a dependancies.rb<br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>an init file and potenially an upload.conf.<br class="webkit-block-placeholder"></div><div><span class="Apple-tab-span" style="white-space:pre">        </span><br class="webkit-block-placeholder"></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>wouldn't it be nicer to just have a very well commented<br class="webkit-block-placeholder"></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>init.rb to contain ALL the app setup and options?<br class="webkit-block-placeholder"></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>the well commented options in merb.yml works well as<br class="webkit-block-placeholder"></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>a quick stop for what can be tweaked, but that same<br class="webkit-block-placeholder"></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>concept would work equally well in an .rb file and make</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>merb's startup sequence obvious and clear without any<br class="webkit-block-placeholder"></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>special knowledge.<br></div><div><br class="webkit-block-placeholder"></div><div>the <b>deps</b> &amp; <b>lib</b> dirs:</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>Almost every ruby library, gem, or application has a lib<br class="webkit-block-placeholder"></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>dir to contain the required files. This is a kind of standard<br class="webkit-block-placeholder"></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>by consistantcy. Why does the "deps" dir exist?. A /plugins<br class="webkit-block-placeholder"></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>dir would feel equally at home in lib/plugins and it would <br class="webkit-block-placeholder"></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>solve the minor dilemor of "does my little extension count<br class="webkit-block-placeholder"></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>as a "dependancy" or as a "lib"<br class="webkit-block-placeholder"></div><div><br class="webkit-block-placeholder"></div><div>the <b>log</b> dir:</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>can't argue there.<br class="webkit-block-placeholder"></div><div><br class="webkit-block-placeholder"></div><div>the <b>public</b> dir:</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>that's a given.<br class="webkit-block-placeholder"></div><div><br></div><div>the <b>schema</b> dir:</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>I think this should be created by whichever ORM plugin/lib<br class="webkit-block-placeholder"></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>you have chosen to use. Not all merb apps will even need<br class="webkit-block-placeholder"></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>a database.<br class="webkit-block-placeholder"></div><div><br class="webkit-block-placeholder"></div><div>the <b>spec</b> dir:</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>perfect, one single obvious place to get your mocks/specs<br class="webkit-block-placeholder"></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>in order<br class="webkit-block-placeholder"></div><div><br class="webkit-block-placeholder"></div><div>the <b>scripts</b> dir:<span class="Apple-tab-span" style="white-space:pre"></span></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>this should be removed. Raketasks are to "scripts" as merb</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>is to actionpack ;)  ....and "rake -T" is your friend.</div><div><br><div> <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0; "><div><br class="Apple-interchange-newline"></div><div><br></div><div><br class="khtml-block-placeholder"></div><div><br class="khtml-block-placeholder"></div><div>Regards</div><div><br class="khtml-block-placeholder"></div><div>chrisfarms.</div><div><br class="webkit-block-placeholder"></div><div><br class="webkit-block-placeholder"></div></span></span></span></span></div></div></body></html>