Has anyone tried Workspace as method? I'm not talking anything fancy, just "accept" compiles the Workspace contents into a String in a method which, when executed opens the workspace. I'd like my workspaces versioned with my code...maybe there's already a more refined version of this. Or maybe it's a bad idea?
Proof of concept attached. David
Object subclass: #Workspaces instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'WorkspaceAsMethod'! "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- "! Workspaces class instanceVariableNames: ''! !Workspaces class methodsFor: 'workspaces' stamp: 'cds 6/29/2010 17:36'! first "self first" ^Workspace new contents: 'We could even add nice menu item to specify the class and selector.'; acceptAction: [:s | self compileWorkspaceContents: s asSelector: #'first' label: 'foo' ]; openLabel: 'foo'! ! !Workspaces class methodsFor: 'utility' stamp: 'cds 6/29/2010 17:36'! compileWorkspaceContents: aString asSelector: selector label: label | code | code := selector asString ,' "self ' , selector asString ,'" ^Workspace new contents: ''', (aString copyReplaceAll: '''' with: '''''') , '''; acceptAction: [:s | self compileWorkspaceContents: s asSelector: #''' , selector asString , ''' label: ''' , label ,''' ]; openLabel: ''' , label , ''''. self class compile: code classified: 'workspaces'! !
_______________________________________________ Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners