Tuesday, July 25, 2006
Sunday, July 23, 2006
Comatose v0.6
Comatose 0.6 is out! Here’s a quick summary of the new stuff:
ComatoseController
has been split intoComatoseController
andComatoseAdminController
- Both controllers extend your
ApplicationController
- The views, stylesheets, and javascripts have been updated and renamed to reflect the controller change
- Configuration via
Comatose::Options
class - Liquid is the default text processor
- Support for named routes
- A Getting Started Guide
- Pages now have a
created_on
field - Bug-fixes
For more, see the CHANGELOG.
Turns out I spoke too soon in my earlier post, there is a schema change. So if you're upgrading you'll need to run:
$ ./script/generate comatose_migration --upgrade --from=0.5
If you have questions/problems/feedback, drop by the Comatose project site and post in the forum or report a bug.
Saturday, July 22, 2006
Comatose Development Site
Rubyforge has been kind enough to create a project site for Comatose. I’ve enabled the following project tools for it:
- Website (I’ll put the Getting Started guide out there soon)
- Forums
- Bug/Patch/Feature Tracking
- Mailing List
Rubyforge also provides a project-specific wiki. I haven’t enabled it, at this point — If you think it’d be useful, lemme know and I can.
So from here on, if you have problems with Comatose you can add a bug ticket. Or better yet, fix it and submit a patch. If you need help with something, feel free to post on the mailing list or the help forum.
If you’ve used Comatose, I’d like to encourage you to drop by the open-discussion forum and leave a note. If you’ve done anything special with it, I’d love to hear it!
Wednesday, July 19, 2006
Comatose and PostgreSQL
Apparently, there’s an issue in Comatose that causes an error when migrating the first time when using PostgreSQL. Here’s the fix, courtesy of Lyle Troxell.
Changing
comatose_page.rb
’s line
acts_as_list :scope=>'parent_id'
to
acts_as_list :scope=>:parent_id
Fixes the problem.
This fix will be put in the next version...
Thanks Lyle!
Tuesday, July 18, 2006
Comatose, TNG
The response I’ve gotten on Comatose is somewhat overwhelming. I’m glad so many of you have found it useful!
Hopefully I won’t annoy you guys too much with the next release… It has quite a lot of updates, and changes. Enough to warrant this post on it as a kind of ‘heads up’.
If you’ve made customizations to the admin, and if you have used an svn:external
to keep up to date with Comatose — you may want to remove the external
and commit the current version (0.5) into your plugin directory… Otherwise you will need to tweak some things when I commit the next version.
In the next release, what is now the ComatoseController
is going to be broken down into two separate controllers. There will still be a ComatoseController
, it’s purpose will be rendering and caching pages. A new ComatoseAdminController
will be the home for all of the administration tools. They will each have a before_filter
that calls #authorize
for authentication purposes.
The way layouts are handled internally has changed too. The controllers will now extend your ApplicationController
, so you should be able to use partials and application helpers in your content layouts.
The biggest change, however, is in the page processing. Liquid will be the new default text processor. Don’t panic — ERB will still be available as a configuration option. But I really want a safer way to support content processing. To go along with that, I’m adding a simple method for adding custom functions to the processors that’ll work for both Liquid and ERB. Also, Liquid will be packaged with the plugin, so you won’t have to worry about having it as a dependency.
There are, at this point, no schema changes — so there won’t be a need for new migrations. There’s quite a few more changes I could talk about, but these are the main things that are some-what breaking changes.
I’ll be releasing the new version later this week.
Wednesday, July 12, 2006
Monstas of the Lil' Variety
As some of you may know, I have been collaborating on a webcomic project called Lil Monstas for… Well, a little while now. OK, it’s been so long that some of you may be thinking that it’s never going to see the light of day.
Well, I’m here to tell you that Lil Monstas is alive! It’s aliiivve! Not only that, but we’ve decided on a release schedule.
So, I invite you all to visit www.LilMonstas.com on All Hallow’s Eve — October 31, 2006 for our inaugural episode! It should be a lot of fun, I hope to see you all there.
Tuesday, July 11, 2006
Comatose v0.5
Can you guess what time it is? That’s right! It’s time for another Comatose update!
So, what’s new? Here are the main things:
- Page reordering
- Updated administration UI
- Parameterized inline rendering
- Fragment caching, and a pre-caching hook if you want more control of such things
- Better importing/exporting of pages
- Misc. bug-fixes
Installation
It's as simple as ever:
$ ./script/plugin source http://mattmccray.com/svn/rails/plugins $ ./script/plugin install comatose $ ./script/generate comatose_migration $ rake migrate
Or, for you (OK, us) early adopters:
$ rapt discover --no-prompt $ rapt install comatose $ ./script/generate comatose_migration $ rake migrate
Then, in your routes.rb:
map.comatose_root ''
Upgrading
For those of you upgrading from version 0.4, there aren’t any new db fields — so you won’t need to worry about migrations. However, there are changes to the CSS, JavaScript, and Views. So you might want to diff those with your customized versions (if you’re customizing the Admin).
Oh, and I’ve also bit the bullet and added a few images to spice it up. For new installations, it’ll automatically copy them into RAILS_ROOT/public/images/comatose/
.
For existing installations, you’ll want to run:
$ rake comatose:copy_images
That should pretty much do it. Don’t forget to glance over the 400+ line README file.
From the ChangeLog:
[version 0.5] * Added support for parameterized inline rendering of comatose pages. Use like a partial: render :comatose=>'path', :locals=>{:username=>'stuff'} the locals hash will be sent to the ERB context for use when rendering the page. * Support for a Hash ERB context exists all the way down to the TextFilters. * Initial support for fragment caching for inline rendering. It's turned off by default. Send :use_cache=>true in the render :comatose=>'' tag to use it. Caching will also not be used if you are sending the page parameters via the ActionController::Base.fragment_cache_store * Return reloadable? false for the ComatoseController by default... This should prevent the development mode hassles people have been having. * Updated data migration tasks to better support nested pages. - comatose:data:export FROM=page_path TO_FILE=file_path - comatose:data:import TO=page_path FROM_FILE=file_path - FROM_FILE and TO_FILE default to 'db/comatose-pages.yml' - FROM and TO default to '', the page tree root * Fixed 'Clear Page Cache' bug -- it didn't handle the page root being an array like it should have. * Removed :page_title and :page_keywords from session * Updated the rails_version in the about.yml to 1.1+ -- just because I haven't tested it on anything less than that. If you have, and it works, let me know! * Adds the utf8 header to all output (text/html; charset=utf-8). Use ComatoseController.force_utf8 = false to disable. * Initial support for page reordering (via AJAX) * Updated the administration look-n-feel.
Enjoy! As always, if you have any questions/problems feel free to give me a shout.
Thursday, July 6, 2006
Comatose v0.4
I’ve just checked in a big update for Comatose.
Here’s a list of the major changes from the CHANGELOG:
[version 0.4] * Added keywords field * Abstracted text filters into a micro plugin structure, default support for - Textile - Markdown - RDoc * It will only show the filters as a choice in the admin if you have the necessary libraries for the filters to function. * Added ComatoseController.hidden_meta_info = [] as a way of showing/hiding the meta fields * The comatose_migration generator now accepts an --upgrade flag which will create a micro migration that only has the new fields in it * get_root_page will now support returning an array of root pages to show in the admin page list * Created some initial tests... (Can you tell I'm not a test _first_ guy?) * Inline rendering now handles :silent flag -- it will just return and empty string if :silent=>true * Modified all the internal references to ComatoseController to self.class. The views reference controller.class. Redirects redirect to :controller=> self.controller_name or controller.controller_name (action and view respectively). This show allow you to sub-class the ComatoseController.
As always, I’ve tried to keep the README up to date with the changes.
Upgrading from the previous version...
I’ve added a couple of fields to the comatose page model… If you have already installed the comatose plugin, and have the add_comatose_support
migration applied, you can get a migration of just the new fields by running:
$ ./script/generate comatose_migration --upgrade
There’s only one other feature that I know I’m going to add in the near future—The ability to re-order the pages. It won’t be a big deal when I release that one though, I already have the field I need in there.
Feedback
As always, check it out, kick the tires, etc. Let me know if you have any issues/questions/suggestions…. darthapo at gmail dot com
Sunday, July 2, 2006
Comatose Screenshots
I've had some requests for screenshots of the administration ui... So, without further ado, here they are.
Hmmm... After looking at the screenshots myself, I think I'm going to re-label "Expire Page Cache" to "Clear Page Cache". But still, you get the idea. That's the default administration ui that comes out of the box. It's straight CSS -- no images.
You can, however, completely customize it to look like your application by running:
$ rake comatose:customize
That will copy all the necessary files to your application folders for customization. The README talks more about that.
From Version 0.5
Update! The following screen shots are from version 0.5:
Comatose Update
There’s a new version of Comatose, the micro CMS plugin, out there.
I wanted to give you guys a quick heads up. This new version has a couple of breaking changes… After this release, if there are any data model changes, I’ll add a generator to the plugin that will create an ‘upgrade’ migration so you can update smoothly. But I’m hoping since it’s only been a few hours since the initial release, not too many people will have to revert anything!
If you’re not sure what Comatose is, you can read my last post on it for the background.
New Features
- Hierarchal pages
- Updated administration styles
- Page previews
- ERB pre-processing
Installation
$ ./script/plugin source http://mattmccray.com/svn/rails/plugins $ ./script/plugin install comatose $ ./script/generate comatose_migration $ rake migrate
Add to the bottom of your config/routes.rb
file:
map.comatose_root ''
That’s it—you’re good to go.
There’s a lot more info, and an FAQ example, in the README.
Saturday, July 1, 2006
Comatose, a Micro CMS Plugin
Features:
- Easy to install—It’s a Rails plugin
- Light-weight—It only adds one table to your schema (and has a generator to create the migration for you)
- Runs entirely from the plugin folder by default
- Intelligent page caching
- Easy to leverage throughout your application
- Full administration UI that can be re-skinned
- Supports Textile filtering
- Simple ‘mounting’ of the cms root path in your
routes.rb
file - Easy to wrap content in a Rails layout
- It’s not meant to be a feature-complete CMS system. If this bugs you… Well, you should look into something like Radiant
- No versioning support
- No page status, all pages are ‘live’
Lately, I’ve had a recurring issue arise on my projects: They generally require a few content pages. Nothing fancy. Just a privacy policy, terms & conditions, an FAQ, that kind of thing.
I don’t really want to make these static HTML pages. They are likely to change at some point, especially the FAQ. Plus, I’d like to have them leverage Rails’ layout support. At the very least, I’d like to have them easy to re-skin.
That said, I don’t want to spend the time integrating an actual CMS system into the application. And really, for just a few pages, it’s too much.
I wanted an easier way. Something that was tiny, simple, and lightweight. Something I could drop into existing applications. In short; a micro CMS plugin.
They say necessity is the mother of invention, although I’ve often thought laziness is… But that’s a different post altogether. The point is, I wound up building something to suit my needs—perhaps it’ll suit yours as well.
I call it Comatose.
Comatose? What a Horrible Name!
Yeah, probably so. I just wanted something unique with the letters CMS in it. Comatose is the first one I thought of.
Features
- Easy to install—It’s a Rails plugin
- Light-weight—It only adds one table to your schema (and has a generator to create the migration for you)
- Runs entirely from the plugin folder by default
- Intelligent page caching
- Easy to leverage throughout your application
- Full administration UI that can be re-skinned
- Supports Textile filtering
- Simple ‘mounting’ of the cms root path in your
routes.rb
file - Easy to wrap content in a Rails layout
- It’s not meant to be a feature-complete CMS system. If this bugs you… Well, you should look into something like Radiant
- No versioning support
- No page status, all pages are ‘live’
Installation
Quite simple. Just run the following in your console, at your application’s root folder:
./script/plugin source http://mattmccray.com/svn/rails/plugins ./script/plugin install comatose ./script/generate comatose_migration rake migrate
Comatose is now installed and setup.
Usage
To enable it in to your application, just add a line to your config/routes.rb
file:
map.comatose_root '/pages'
That’s it! Now, whenever you visit http://your-app-url/pages
it will render your cms pages.
Have a look at the README for more.
Feedback
Feel free to use Comatose. I’ve released it, at this point, under the MIT license. Which basically means you can use it however you want.
If you like it, hate it, or have some ideas for new features, let me know! ( darthapo at gmail dot com )