Changes for version 0.15 - 2006-09-21
- Highlights: many-to-many support for DBIx::Class ASCII art for specifying table relationships try: bigtop -n AppName 'pos->job job<->skill' augment an existing bigtop file with bigtop and tentmaker flags Gantry controllers now have (a few) generated page hit tests tentmaker... has a new Field Quick Edit box for its most common edits allows multiple fields to be made at once has much more magic to save even more time stand alone servers have flags to change database connection info
- Added support for three way joins (many to many) relationships for dbix class models.
- Added ASCII art input to bigtop script, try this: bigtop -n AppName 'pos->job job<->skill' You get four tables: pos, job, skill, and job_skill with a reference column in pos storing a job id and a many-to-many between job and skill.
- Added --add flag (aka -a) to bigtop script: bigtop -a docs/yourapp.bigtop 'app->pos resume<->app' adds app and resume tables and controllers plus a resume_app joining table.
- Applied --new and --add flags to tentmaker in exactly the way they apply to bigtop (they even share the implementation code which is factored out into Bigtop::ScriptHelp).
- Comments are preserved on deparse, meaning they will survive a trip through tentmaker. This also facilitates the --add flag. One caveat: if you have blank lines or split long statements across lines, comments below that point will be shifted down in the output, but at least they won't be summarily deleted.
- Corrected the error message when app level block names are omitted.
- Expanded generated stand alone servers so you can change database DBDs, names, user names, and/or passwords with command line flags. Editing the generated app.server makes it easy to change the defaults (then you should turn probably off generation of it).
- Sequences are no longer generated by default.
- Navigation links are now generated in the site_links method of the base module.
- Defaults now always call the database app.db.
- Base modules now come in stub and GEN pieces so their nav links can be regenerated.
- DBIx::Class schema modules are now split into stub and GEN pieces so the GEN piece can be regened when new tables are added to the data model.
- When you change the name of table in tentmaker, the controller now updates its controls_table statement (but not its own name). Foreign keys pointing to the table have their refers_to statements updated (but not their own names).
- When you change the name of a field in tentmaker, it now walks the parse tree updating that name wherever it occurs (including: the label of the field, the cols of the controller's main_listing, the controller's form method, and the foreign_display).
- The Gantry Control backend now makes more tests. There are pod and pod coverage tests (which require have Test::Pod and Test::Pod::Coverage). There is also a file of run tests which use Gantry::Server to test front page hits of each generated controller.
- tentmaker now has a quick edit box with a row for each field allowing one small place to modify a lot of important data. Any field keyword will show in the box, if it's Bigtop::Keywords entry has a quick_label.
- tentmaker now allows multiple fields to be constructed at once, simply separate them with spaces in the Name(s) box.
- When a field's SQL type becomes date or it has date_select_text set on it in tentmaker, everything is done to make the Gantry easy date scheme work.
- Gantry stub controllers finally inherit from their gen modules. This allows overriding gen methods without hastle and easier use of plugins provided by the framework (which are themselves mixins).
- Killing the tentmaker now prompts to ask if you want to save changes.
- Corrected long standing (but unnoticed) bug which would build in the wrong directory when base_dir is used without app_dir.
- Added controller level config block support to deparser so they can pass undisturbed (save whitespace normalization) through tentmaker.
- Simplified the abstract syntax tree and standardized the naming of various elements in it.
Documentation
the parser/generater for the bigtop langauge
browser based bigtop file editor
Modules
A web application data language processor
defines the legal keywords for cgi backends
A generated server for the [% app_name %] app
defines the legal keywords for conf backends
makes Config::General conf files
defines legal keywords in control blocks
controller generator for the Gantry framework
defines the legal keywords for httpd conf backends
httpd.conf generator for the Gantry framework
Bigtop backend which works sort of like h2xs
defines legal keywords in table and field blocks
defines legal keywords in table and field blocks
backend to generate sql for MySQL database creation
backend to generate sql for Postgres database creation
backend to generate sql for SQLite database creation
Bigtop to generate site appearance files
given an AST, makes a corresponding bigtop source file
A document explaining Bigtop's features and history
Bigtop syntax by example
a bigtop keyword quick reference in monospace font
An annotated list of modules in the Bigtop distribution
a quick reference guide to bigtop syntax
A (mostly) complete Bigtop syntax description
Table of Contents for Bigtop::Docs::* documentation modules
tentmaker reference (best viewed in html)
tentmaker tutorial (best viewed in html)
a simple case study of building a web app with bigtop
How to get vim syntax things for Bigtop files
generated by Parse::RecDescent from bigtop.grammar
A central place to describe all bigtop keywords
the Parse::RecDescent grammar driven parser for bigtop files
A helper modules for command line utilities
A Gantry App to Help You Code Bigtop Files
Provides
in lib/Bigtop/Backend/Model/Gantry.pm
in lib/Bigtop/Backend/Model/GantryCDBI.pm
in lib/Bigtop/Backend/Model/GantryDBIxClass.pm
in lib/Bigtop/Grammar.pm
in notes/Postgres.pm
in notes/Postgres.pm
in notes/Postgres.pm
in notes/Postgres.pm
in notes/Postgres.pm
in notes/Postgres.pm
in notes/Postgres.pm
in notes/Postgres.pm
in notes/Postgres.pm
in notes/Postgres.pm