SMInstaller (was re: [ANN] Seaside 2.02)

Avi Bryant avi at beta4.com
Wed Oct 30 02:58:47 UTC 2002


On Tue, 29 Oct 2002 goran.hultgren at bluefish.se wrote:

> > (I don't necessarily recommend updating through SqueakMap, though - better
> > would be to file it in clean to a new image.  Need to get that
> > SMDVSInstaller going...)
>
> Exactly! :-)

Looking at that again, I remembered what my other problem was with
#canInstall:, that I forgot to mention in my last post - since DVS files
are just .st, they get snapped up by the default installer before the DVS
installer ever gets a chance...

What I've done before in similar situations is to do a leaf-first search,
so that subclassing an existing installer (and adding narrower criteria)
is feasible.

I propose the following change to SMInstaller class:

classForPackage: aPackage
	"Find the most specialized subclass that wants to handle the package."

	self subclasses do:
		[:ea |
		(ea classForPackage: aPackage)
			ifNotNilDo: [:class | ^ class]].

	^ (self canInstall: aPackage) ifTrue: [self]




More information about the Squeak-dev mailing list