Hi, everyone!
I’ve been a very long-term user and fan of Erector, and a huge admirer of all the work that Alex and other folks have put into it over time. It’s a brilliant idea and one that I think is deserving of a ton of appreciation from the broad Rails community.
My own experience with Erector has been that, while the ideas are amazing, the implementation has gradually grown out-of-date — enough so that using Erector with modern frameworks and toolchains is a bit dicey these days. I started really digging into this several months ago, wanting to improve the state of Erector. As I dug in more, though, it became clear that a more significant overhaul would be needed; among other things, the performance of Erector lagged other templating languages by a large factor, and there were no easy wins.
To make a long story short, I’ve spent my spare time over the past several months building a ground-up replacement for Erector, called Fortitude. Fortitude uses the exact same idea as Erector and (with a little configuration) is compatible with the overwhelming majority of Erector code, but is built from scratch for extremely high performance (40x–60x that of Erector, and 10–40% faster than ERb/Erubis), compatibility with all modern Ruby and Rails versions (though it works perfectly without Rails, too, including via Tilt), and a number of very useful and cool features that only such a templating language can have. (For example, it can tell you if you violate HTML element-nesting or attribute rules, or if you try to use a duplicate HTML ID on a page.)
Fortitude is feature-complete, API-stable, and extremely well-tested — but needs beta testers! There is little documentation so far (that’s my next big chunk of work), which is why I’m writing to this list; if you know how to use Erector, you (largely) already know how to use Fortitude. If you have a project or application you think might be a good candidate for this, here’s how to get started:
1. Please
drop me a quick note, just to say you’re trying it (it’ll help a lot to know how many people are giving it a shot!).
2. Check out
README-erector.md on GitHub; it’s a quickstart and guide to Fortitude for those who know Erector. (It shouldn’t take more than a few minutes to get up and running with Fortitude, if you know Erector already.)
3. Join the
fortitude-ruby Google group/mailing list for news and updates. (And to keep Fortitude traffic off this list — I don’t want to annoy Erector users with Fortitude discussion!)
I’m committed to fixing bugs rapidly and adding features that make sense, and welcome any and all pull requests. Let me know what you think — I’d love the feedback. And, most of all, I hope you can use and enjoy Fortitude.
Cheers,
Andrew