Michael Schuerig
2005-Jun-12 15:00 UTC
[ANN] BoilerPlate 0.1.0 -- An application skeleton for Ruby on Rails
Hi folks! I''d like to announce the availability of a first version of BoilerPlate. See the README below. I hope you enjoy it. There are still several rough edges, so play carefully. I''m looking forward to your comments and suggestions. Michael = BoilerPlate -- An application skeleton for Ruby on Rails BoilerPlate is (intended to become) some general code on top of Rails for easily creating list and form views. See below for some more details. BoilerPlate is still in its infancy. There will almost certainly, and out of sheer necessity, be fundamental changes. At the time of this writing, I''m using Rails for about eight weeks. BoilerPlate is what has become of my efforts thus far, but there are bound to be problems in there due to my misunderstanding of Rails and the other pieces of the puzzle. This release is primarily meant to gather feedback. I appreciate your suggestions for improvement, comments on the code. Helpful advise on how to improve test coverage. It is very unlikely that BoilerPlate in its current state is useful for anyone. But I hope that it contains enough otherwise reusable code and demonstrates some interesting techniques. To get an idea how it looks and feels, please go to http://www.schuerig.de/michael/boilerplate There you get to see some screenshots and static generated pages with client-side functionality intact. I am sorry, currently I''ve got no way to host a live demo. == Requirements * libgettext-ruby - debian package or from http://ponx.s5.xrea.com/hiki/ruby-gettext.html * ruby-json - available as a gem from RubyForge == Installation * Unpack the tarball/zip. * Add symbolic links (or equivalent) to all the top-level rails packages to the vendor directory. * Create a new MySQL database user named "boilerplate" with enough rights to create and use databases. * Create and populate a MySQL demo database by running +script/create_and_populate_demo_db+. * +script/server+ * Point your browser to http://localhost:3000 == The Good * It looks pretty nice on the right browsers. Firefox, Konqueror, and hopefully Safari. * High level of abstraction. A lot of things can be done quasi-declaratively. * Forms * User-friendly display of conflicts from optimistic locking. * Mostly declarative client-side validation. * Widgets for calendars, popup choosers of associated objects, many-to-many choosers. * Marking of changed fields. * List views * Drag & drop of columns. * Filter criteria per column. * Rudimentary support for "What''s This"-type help messages. == The Bad * Test coverage is scant at best. Sigh. * Internet Explorer mangles the page layout into an unusable mess. == The Ugly * Some heavy, though transparent, patching into Rails functionality. * Too much HTML in helper methods. * The code organization is somewhat messy. * Some code hasn''t found its right place yet. * I haven''t wrapped my mind around what needs to be required where (and in what way). * I''m confused about strings and symbols as hash keys and it shows in the code. == The Missing * Query criteria can''t be saved yet * Column filtering for attributes of associated objects. * Ajax for * reloading only table bodies in list views * showing only matching candidates in many-to-many choosers === If I had a wish: What I''d like to have in Rails Most of all easier access to reflection information. Rails really ought to be able on its own to derive validation constraints from the underlying database meta data. _And_ any validation constraints ought to be open to reflection. Currently, I''m patching my way through Rails to bring NOT NULL constraints easily to the generated HTML as +class="mandatory"+ attributes. I''d feel better without the patching. See http://dev.rubyonrails.org/ticket/861 Also, I''d really like to see my additions to associations and the enhanced +select+ tag functionality in Rails. == The Goodies (easily usable independently of BoilerPlate) * navigable.rb - accessing properties along paths * Extensions of standard Ruby classes, e.g. Enumerable#join_on * Client-side validations based on HTML class attribute. * Dynamic markers for changed form entries. * JavaScript extensions and Protoplus.js == Acknowledgements Thanks to all the helpful people who answered my questions on * the Rails mailing list * comp.infosystems.www.authoring.html * comp.lang.javascript * comp.lang.ruby * de.comm.infosystems.www.authoring.misc * de.comp.lang.javascript == Author I''m a software developer located in Bonn/Germany. If you''d like to get an idea of what I do and what I''m interested in, please visit http://www.schuerig.de/michael. I''ve more than enough work to do all the time, it would be nice if more of it was paid. Available for hire. == License This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. See http://www.gnu.org/copyleft/lesser.html -- Michael Schuerig The Fifth Rider of the Apocalypse mailto:michael-q5aiKMLteq4b1SvskN2V4Q@public.gmane.org is a programmer. http://www.schuerig.de/michael/
Mike Payson
2005-Jun-12 17:59 UTC
Re: [ANN] BoilerPlate 0.1.0 -- An application skeleton for Ruby on Rails
That looks VERY cool. I''m not yet in a position to try it out, but I''ve got it bookmarked & check it again once I have a better handle on everything. On 6/12/05, Michael Schuerig <michael-q5aiKMLteq4b1SvskN2V4Q@public.gmane.org> wrote:> > Hi folks! > > I''d like to announce the availability of a first version of BoilerPlate. > See the README below. > > I hope you enjoy it. There are still several rough edges, so play > carefully. I''m looking forward to your comments and suggestions. > > Michael > > > = BoilerPlate -- An application skeleton for Ruby on Rails > > BoilerPlate is (intended to become) some general code on top of > Rails for easily creating list and form views. > See below for some more details. > > BoilerPlate is still in its infancy. There will almost certainly, and > out of sheer necessity, be fundamental changes. > At the time of this writing, I''m using Rails for about eight weeks. > BoilerPlate is what has become of my efforts thus far, but there are > bound to be problems in there due to my misunderstanding of Rails and > the other pieces of the puzzle. > > This release is primarily meant to gather feedback. I appreciate your > suggestions for improvement, comments on the code. Helpful advise on > how to improve test coverage. > > It is very unlikely that BoilerPlate in its current state is useful for > anyone. But I hope that it contains enough otherwise reusable code and > demonstrates some interesting techniques. > > To get an idea how it looks and feels, please go to > > http://www.schuerig.de/michael/boilerplate > > There you get to see some screenshots and static generated pages with > client-side functionality intact. I am sorry, currently I''ve got no way > to > host a live demo. > > > == Requirements > > * libgettext-ruby - debian package or from > http://ponx.s5.xrea.com/hiki/ruby-gettext.html > * ruby-json - available as a gem from RubyForge > > > == Installation > > * Unpack the tarball/zip. > * Add symbolic links (or equivalent) to all the top-level rails packages > to the vendor directory. > * Create a new MySQL database user named "boilerplate" with enough > rights to create and use databases. > * Create and populate a MySQL demo database by running > +script/create_and_populate_demo_db+. > * +script/server+ > * Point your browser to http://localhost:3000 > > > == The Good > > * It looks pretty nice on the right browsers. Firefox, Konqueror, and > hopefully Safari. > * High level of abstraction. A lot of things can be done > quasi-declaratively. > * Forms > * User-friendly display of conflicts from optimistic locking. > * Mostly declarative client-side validation. > * Widgets for calendars, popup choosers of associated objects, > many-to-many choosers. > * Marking of changed fields. > * List views > * Drag & drop of columns. > * Filter criteria per column. > * Rudimentary support for "What''s This"-type help messages. > > == The Bad > > * Test coverage is scant at best. Sigh. > * Internet Explorer mangles the page layout into an unusable mess. > > == The Ugly > > * Some heavy, though transparent, patching into Rails functionality. > * Too much HTML in helper methods. > * The code organization is somewhat messy. > * Some code hasn''t found its right place yet. > * I haven''t wrapped my mind around what needs to be required where (and > in what way). > * I''m confused about strings and symbols as hash keys and it shows in > the code. > > == The Missing > > * Query criteria can''t be saved yet > * Column filtering for attributes of associated objects. > * Ajax for > * reloading only table bodies in list views > * showing only matching candidates in many-to-many choosers > > === If I had a wish: What I''d like to have in Rails > > Most of all easier access to reflection information. Rails really ought > to be able on its own to derive validation constraints from the > underlying database meta data. _And_ any validation constraints ought > to be open to reflection. Currently, I''m patching my way through Rails > to bring NOT NULL constraints easily to the generated HTML as > +class="mandatory"+ attributes. I''d feel better without the patching. > See http://dev.rubyonrails.org/ticket/861 > > Also, I''d really like to see my additions to associations and the > enhanced > +select+ tag functionality in Rails. > > > == The Goodies (easily usable independently of BoilerPlate) > > * navigable.rb - accessing properties along paths > * Extensions of standard Ruby classes, e.g. Enumerable#join_on > * Client-side validations based on HTML class attribute. > * Dynamic markers for changed form entries. > * JavaScript extensions and Protoplus.js > > > == Acknowledgements > > Thanks to all the helpful people who answered my questions on > > * the Rails mailing list > * comp.infosystems.www.authoring.html > * comp.lang.javascript > * comp.lang.ruby > * de.comm.infosystems.www.authoring.misc > * de.comp.lang.javascript > > > == Author > > I''m a software developer located in Bonn/Germany. > If you''d like to get an idea of what I do and what I''m interested in, > please visit http://www.schuerig.de/michael. > I''ve more than enough work to do all the time, it would be nice if > more of it was paid. Available for hire. > > > == License > > This library is free software; you can redistribute it and/or > modify it under the terms of the GNU Lesser General Public > License as published by the Free Software Foundation; either > version 2.1 of the License, or (at your option) any later version. > See http://www.gnu.org/copyleft/lesser.html > > > -- > Michael Schuerig The Fifth Rider of the Apocalypse > mailto:michael-q5aiKMLteq4b1SvskN2V4Q@public.gmane.org is a programmer. > http://www.schuerig.de/michael/ > _______________________________________________ > Rails mailing list > Rails-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org > http://lists.rubyonrails.org/mailman/listinfo/rails >
Ezra Zygmuntowicz
2005-Jun-12 18:21 UTC
Re: [ANN] BoilerPlate 0.1.0 -- An application skeleton for Ruby on Rails
On Jun 12, 2005, at 8:00 AM, Michael Schuerig wrote:> > Hi folks! > > I''d like to announce the availability of a first version of > BoilerPlate. > See the README below. > > I hope you enjoy it. There are still several rough edges, so play > carefully. I''m looking forward to your comments and suggestions. > > Michael > ><snip> A bunch of really cool stuff!</snip> Michael- This looks awesome! I''m very impressed. I''m going to dig into this today and play. I think you''ve added a ton of features that I will use in many apps that I write. Thank You! -Ezra> > -- > Michael Schuerig The Fifth Rider of the Apocalypse > mailto:michael-q5aiKMLteq4b1SvskN2V4Q@public.gmane.org is a programmer. > http://www.schuerig.de/michael/ > _______________________________________________ > Rails mailing list > Rails-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org > http://lists.rubyonrails.org/mailman/listinfo/rails >
Jay Levitt
2005-Jun-12 18:29 UTC
Re: [ANN] BoilerPlate 0.1.0 -- An application skeleton for Ruby on Rails
In article <200506121700.07631.michael-q5aiKMLteq4b1SvskN2V4Q@public.gmane.org>, michael- q5aiKMLteq4b1SvskN2V4Q-XMD5yJDbdMReXY1tMh2IBg@public.gmane.org says...> BoilerPlate is (intended to become) some general code on top of > Rails for easily creating list and form views. > See below for some more details.Wow... this looks impressive! I look forward to seeing it mature. Any thoughts on eventually merging it into the "scaffold" functionality? Or is that not the right place for it? -- Jay Levitt | Wellesley, MA | I feel calm. I feel ready. I can only Faster: jay at jay dot fm | conclude that''s because I don''t have a http://www.jay.fm | full grasp of the situation. - Mark Adler
Michael Schuerig
2005-Jun-12 19:07 UTC
Re: [ANN] BoilerPlate 0.1.0 -- An application skeleton for Ruby on Rails
On Sunday 12 June 2005 20:29, Jay Levitt wrote:> In article <200506121700.07631.michael-q5aiKMLteq4b1SvskN2V4Q@public.gmane.org>, michael- > q5aiKMLteq4b1SvskN2V4Q-XMD5yJDbdMReXY1tMh2IBg@public.gmane.org says... > > > BoilerPlate is (intended to become) some general code on top of > > Rails for easily creating list and form views. > > See below for some more details. > > Wow... this looks impressive! I look forward to seeing it mature.Me too...> Any thoughts on eventually merging it into the "scaffold" > functionality? Or is that not the right place for it?I haven''t looked into the inner workings of scaffolding and generators yet. It might be possible to integrate BoilerPlate unobtrusively with them. But then there are still some choices that a human should make regarding how an object''s attributes are to be displayed. With the level of abstraction that BoilerPlate is intended to provide, scaffolding doesn''t look that attractive anymore to me. Still, I''ll have a look some time, or maybe someone else has. It''s just not a high priority for me currently as there are other, rougher edges. Michael -- Michael Schuerig The Fifth Rider of the Apocalypse mailto:michael-q5aiKMLteq4b1SvskN2V4Q@public.gmane.org is a programmer. http://www.schuerig.de/michael/
Tobias Luetke
2005-Jun-12 19:42 UTC
Re: Re: [ANN] BoilerPlate 0.1.0 -- An application skeleton for Ruby on Rails
Looks very impressive Michael!> I haven''t looked into the inner workings of scaffolding and generators > yet. It might be possible to integrate BoilerPlate unobtrusively with > them. But then there are still some choices that a human should make > regarding how an object''s attributes are to be displayed. With the > level of abstraction that BoilerPlate is intended to provide, > scaffolding doesn''t look that attractive anymore to me. Still, I''ll > have a look some time, or maybe someone else has. It''s just not a high > priority for me currently as there are other, rougher edges.This is exactly what generators are trying to address. They leave you with a best practise while general solution and let you adjust it according to your requirements. I''m convinced something like boilerplate should be done using generators! Not necissarly along the lines of scaffolding though. -- Tobi http://www.snowdevil.ca - Snowboards that don''t suck http://typo.leetsoft.com - Open source weblog engine http://blog.leetsoft.com - Technical weblog
Mike Payson
2005-Jun-12 20:10 UTC
Re: Re: [ANN] BoilerPlate 0.1.0 -- An application skeleton for Ruby on Rails
On 6/12/05, Tobias Luetke <tobias.luetke-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> This is exactly what generators are trying to address. They leave you > with a best practise while general solution and let you adjust it > according to your requirements. > I''m convinced something like boilerplate should be done using > generators! Not necissarly along the lines of scaffolding though. >So, are generators intended to have a similar function to Gems when dealing with Rails-specific functionality? If so, is there a plan to allow the generator to install ''gens'' from remote sources? It would get unwieldly to have to distribute every possible function with Rails, not to mention the version-management hell it would create. Or would you do ''gem install boilerplate'', then run the generator? Or am I misunderstanding the whole thing?
David Thomson
2005-Jun-12 20:26 UTC
Re: Re: [ANN] BoilerPlate 0.1.0 -- An application skeleton for Ruby on Rails
> So, are generators intended to have a similar function to Gems when > dealing with Rails-specific functionality? If so, is there a plan to > allow the generator to install ''gens'' from remote sources? It would > get unwieldly to have to distribute every possible function with > Rails, not to mention the version-management hell it would create. Or > would you do ''gem install boilerplate'', then run the generator? Or am > I misunderstanding the whole thing?Mike, this is already possible with a few generators: http://wiki.rubyonrails.com/rails/show/AvailableGenerators Best, David