Creating a Class in a Temporary Environment
I used to have creatingAClassInATemporaryNamespace | testingEnvironment morph | testingEnvironment := SystemDictionary new. ClassBuilder new name: #AClassForTesting inEnvironment: testingEnvironment subclassOf: Object type: Object typeOfClass instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'TemporaryTesting'. How do I do this with Slots? I tried: creatingAClassInATemporaryNamespace | testingEnvironment morph | testingEnvironment := SystemDictionary new. PharoClassInstaller make: [ :builder | builder superclass: Object; name: #AClassForTesting; environment: testingEnvironment; category: 'TemporaryTesting' ]. but got "key #SystemOrganization not found in SystemDictionary". ----- Cheers, Sean -- View this message in context: http://forum.world.st/Creating-a-Class-in-a-Temporary-Environment-tp4825963.... Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Sean, Maybe it is not exactly what you asked but when it is about creating classes/traits for testing I always used ClassFactoryForTestCase (see it is used by Fuel). You can even check how that class currently creates the stuff. Cheers, On Tue, May 12, 2015 at 7:45 AM, Sean P. DeNigris <sean@clipperadams.com> wrote:
I used to have
creatingAClassInATemporaryNamespace
| testingEnvironment morph | testingEnvironment := SystemDictionary new.
ClassBuilder new name: #AClassForTesting inEnvironment: testingEnvironment subclassOf: Object type: Object typeOfClass instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'TemporaryTesting'.
How do I do this with Slots?
I tried:
creatingAClassInATemporaryNamespace
| testingEnvironment morph | testingEnvironment := SystemDictionary new.
PharoClassInstaller make: [ :builder | builder superclass: Object; name: #AClassForTesting; environment: testingEnvironment; category: 'TemporaryTesting' ].
but got "key #SystemOrganization not found in SystemDictionary".
----- Cheers, Sean -- View this message in context: http://forum.world.st/Creating-a-Class-in-a-Temporary-Environment-tp4825963.... Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
-- Mariano http://marianopeck.wordpress.com
Hi Sean, You can use AnonymousClassInstaller instead of PharoClassInstaller. We should improve it because it has limitations: the environment is not used and you wonât be able to change the slots or the superclass after creation. AnonymousClassInstaller make: [ :builder | builder superclass: Object; name: #AClassForTesting ]. Camille
On 12 May 2015, at 12:45, Sean P. DeNigris <sean@clipperadams.com> wrote:
I used to have
creatingAClassInATemporaryNamespace
| testingEnvironment morph | testingEnvironment := SystemDictionary new.
ClassBuilder new name: #AClassForTesting inEnvironment: testingEnvironment subclassOf: Object type: Object typeOfClass instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'TemporaryTesting'.
How do I do this with Slots?
I tried:
creatingAClassInATemporaryNamespace
| testingEnvironment morph | testingEnvironment := SystemDictionary new.
PharoClassInstaller make: [ :builder | builder superclass: Object; name: #AClassForTesting; environment: testingEnvironment; category: 'TemporaryTesting' ].
but got "key #SystemOrganization not found in SystemDictionaryâ.
----- Cheers, Sean -- View this message in context: http://forum.world.st/Creating-a-Class-in-a-Temporary-Environment-tp4825963.... Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
On 12 May 2015, at 14:57, Camille <camille.teruel@gmail.com> wrote:
Hi Sean,
You can use AnonymousClassInstaller instead of PharoClassInstaller.
Hmmm⦠I donât like that. It is for anonymous classes. We should fix the class builder itself⦠and check that Opal can use environments, too. It is already on my TODO...
We should improve it because it has limitations: the environment is not used and you wonât be able to change the slots or the superclass after creation.
AnonymousClassInstaller make: [ :builder | builder superclass: Object; name: #AClassForTesting ].
Camille
On 12 May 2015, at 12:45, Sean P. DeNigris <sean@clipperadams.com> wrote:
I used to have
creatingAClassInATemporaryNamespace
| testingEnvironment morph | testingEnvironment := SystemDictionary new.
ClassBuilder new name: #AClassForTesting inEnvironment: testingEnvironment subclassOf: Object type: Object typeOfClass instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'TemporaryTesting'.
How do I do this with Slots?
I tried:
creatingAClassInATemporaryNamespace
| testingEnvironment morph | testingEnvironment := SystemDictionary new.
PharoClassInstaller make: [ :builder | builder superclass: Object; name: #AClassForTesting; environment: testingEnvironment; category: 'TemporaryTesting' ].
but got "key #SystemOrganization not found in SystemDictionaryâ.
----- Cheers, Sean -- View this message in context: http://forum.world.st/Creating-a-Class-in-a-Temporary-Environment-tp4825963.... Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Hi, I fixed it: https://pharo.fogbugz.com/f/cases/16479/Creating-a-class-in-an-empty-environ... On Tue, May 12, 2015 at 12:45 PM, Sean P. DeNigris <sean@clipperadams.com> wrote:
I used to have
creatingAClassInATemporaryNamespace
| testingEnvironment morph | testingEnvironment := SystemDictionary new.
ClassBuilder new name: #AClassForTesting inEnvironment: testingEnvironment subclassOf: Object type: Object typeOfClass instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'TemporaryTesting'.
How do I do this with Slots?
I tried:
creatingAClassInATemporaryNamespace
| testingEnvironment morph | testingEnvironment := SystemDictionary new.
PharoClassInstaller make: [ :builder | builder superclass: Object; name: #AClassForTesting; environment: testingEnvironment; category: 'TemporaryTesting' ].
but got "key #SystemOrganization not found in SystemDictionary".
----- Cheers, Sean -- View this message in context: http://forum.world.st/Creating-a-Class-in-a-Temporary-Environment-tp4825963.... Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
-- -- Marcus Denker -- denker@acm.org http://www.marcusdenker.de
Marcus Denker-4 wrote
I fixed it:
Cool! Thanks :) ----- Cheers, Sean -- View this message in context: http://forum.world.st/Creating-a-Class-in-a-Temporary-Environment-tp4825963p... Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
participants (4)
-
Camille -
Marcus Denker -
Mariano Martinez Peck -
Sean P. DeNigris