Thanks for the write-up, Luke!
Well, it certainly looks a lot better than before. And I don't lament
the removal of Rubigen: it always seemed too narrowly-targeted for
general usage (just felt like we were hacking it to make it work for
us). Globals and untestability only make it more obvious.
I am still trying to figure out where Sprouts will fit in for other
languages and environments, though. I'm a long-time Rubyist, and I've
always appreciated Sprouts as sort of the "Rubification of Flash/Flex
projects", which roughly means injecting all of the great process and
workflow we commonly see in Ruby projects (git, gems, rake, CLI
interface, etc) into an environment that sorely needs it (dreadful,
proprietary IDEs and Ant tasks that only do exactly what they do and
afford little flexibility).
Would you say that Sprout now seeks to be the "Rubification of X
projects" where X is any given language or environment? I guess the
case where X = Ruby is the most interesting, since, by and large, the
community already HAS all of the best practices in use and would
(perhaps?) be slowed by the existence of an intermediate tool.
That said, it also seems as though you're building a meta-tool.
Codifying the way we create new tools is clearly valuable!
Anyway, still just trying to get my head around the direction and
philosophy. I'm pretty interested in helping out if it all makes sense
and I'm able to reasonably scratch some itches while I do it. Looking
forward to those getting started docs and some more answers here!
Thanks again Luke, et al,
-Loren
On Jun 20, 5:13 pm, Luke Bayes <
lba...@patternpark.com> wrote:
> Hey Loren,
>
> Thanks for following up here!
>
> There are definitely some major changes and simplifications coming in terms
> of how we think about Sprouts.
>
> This latest build has come about primarily as an effort to simplify and open
> up Sprouts to external contributions.
>
> In order to accept contributions with confidence, I decided to delete and
> then test-drive the existing code base back into existence - starting from
> scratch, but bringing in functionality one feature at a time.
>
> It was during this process that every single feature became simpler, more
> encapsulated and more elegant.
>
> Two of the most-changed areas are related to Executables and Generators.
>
> With the upcoming release, Sprouts provides the world's cleanest mechanism
> for describing Executables - whether you intend to implement a new
> executable directly in Ruby, or delegate to an external process from Ruby
> (or Rake).
>
> Here's an example Executable from our test fixtures (This is one of the most
> complicated executable applications - mxmlc):
>
>
http://github.com/lukebayes/project-sprouts/blob/master/test/fixtures...
>
> Here's a very simple example Generator from our test fixtures:
>
>
http://github.com/lukebayes/project-sprouts/blob/master/test/fixtures...
>
> And it's Template:
>
>
http://github.com/lukebayes/project-sprouts/blob/master/test/fixtures...
>
> And here's a more complex Generator (For creating new Sprout Tools):
>
>
http://github.com/lukebayes/project-sprouts/tree/master/lib/sprout/ge...