A Smalltalk ActiveRecord using Magritte, Seaside, and Glorp

16 January, 2007


Ramon Leon reciently posted his ActiveRecord code for Seaside.

From Ramon’s Blog:

I’ve been working on a side project that’s given me reason to want to use Glorp with Seaside. Having just mapped the sample blog written from my screencast into Glorp manually, by writing Glorp descriptors, I decided that I wanted something simpler, something more like Ruby on Rails, automatic persistence, with almost no configuration.

Having used Magritte for a while to describe my Seaside UI’s, I decided that those same descriptions contained all the necessary meta data to write Glorp descriptions from. Unlike the ActiveRecord in Rails, or the one Alan Knight is working on, I’m not using the database as the source of my metadata, I’m using the objects themselves with meta data from Magritte instead.

I sat down and started hacking out my own ActiveRecord implementation, which is really just a small framework that glues these three existing frameworks together for me and makes using Seaside against a Postgres database easy for me. Needless to say, a knowledge of Magritte is a prerequisite for using this code.

I just open sourced the code I’ve been using on SqueakSource, just add this repository to Monticello to get a copy.

See Ramon’s Blog for details.

2 Responses to “A Smalltalk ActiveRecord using Magritte, Seaside, and Glorp”

  1. […] make use of other useful resources such as Magritte or Magma (or even Ramon’s own version of ActiveRecord for Smalltalk). Indeed, if you’re interested in building a production-strength wiki, then as […]

  2. […] A Smalltalk ActiveRecord using Magritte, Seaside, and Glorp « The Weekly Squeak (tags: database squeak active_record) […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: