Metacello - a little more DSL

2 views
Skip to first unread message

Dale Henrichs

unread,
May 20, 2009, 8:24:02 PM5/20/09
to montice...@googlegroups.com
In the proof of concept mail, I sent out the following two expressions:

{{{ 'Seaside-VersionMap-dkh.7'}}.
{{ 'http://seaside.gemstone.com/ss/test'}}} mcLoad.

(WAVersionMap version: '2.9.0-alpha3') load: { 'Basic Tests'. }.

It struck me that if my intent was to provide a doIt for loading version '2.9.0-alpha3' of Seaside, the above expressions can't be executed in a single doIt, unless WAVersionMap had already been loaded.

In order to create an expression that can be executed in a single doIt, Something like the following can be written:

((MetacelloVersionMapSpec new)
versionMapClass: 'WAVersionMap';
version: '2.9.0-alpha3';
loadList: { 'Basic Tests'. };
packagesSpec:
((MetacelloPackagesSpec new)
addFile: 'Seaside-VersionMap-dkh.7';
addRepository: 'http://seaside.gemstone.com/ss/test';
yourself);
yourself) load.

but it is wordier than the following:

{ 'WAVersionMap'. '2.9.0-alpha3'. { 'Basic Tests'. }.
{{{ 'Seaside-VersionMap-dkh.7'}}.
{{ 'http://seaside.gemstone.com/ss/test'}}}} mcLoad.

I'm pushing at the boundaries that should be placed on the the DSL for Metacello.

I've obviously got an attraction to structured arrays (hopefully not a fatal attraction:), but I'm curious if anyone else has an opinion ... if the consensus is to bag structured arrays completely that's fine with me, but I'd like to hear about preferences and/or alternatives.

Dale

Reply all
Reply to author
Forward
0 new messages