Cleanup - remove unfinished implementation of chaining api and default values
authorJakub Nesveda <jakubnesveda@seznam.cz>
Thu, 05 Feb 2015 22:42:42 +0100
changeset 815 0ca40b727a4f
parent 814 d18c25f112ce
child 816 3925afb63587
Cleanup - remove unfinished implementation of chaining api and default values
CustomNamespace.st
CustomNamespaceTests.st
patches/patches.rc
refactoring_custom.rc
--- a/CustomNamespace.st	Thu Feb 05 22:28:30 2015 +0100
+++ b/CustomNamespace.st	Thu Feb 05 22:42:42 2015 +0100
@@ -3,8 +3,8 @@
 "{ NameSpace: Smalltalk }"
 
 RBNamespace subclass:#CustomNamespace
-	instanceVariableNames:'changeManager formatter defaultValues defaultReplacements
-		classModelClass methodModelClass sourceCodeGeneratorClass'
+	instanceVariableNames:'changeManager formatter classModelClass methodModelClass
+		sourceCodeGeneratorClass'
 	classVariableNames:''
 	poolDictionaries:''
 	category:'Interface-Refactoring-Custom'
@@ -178,9 +178,8 @@
 
 createClass
     "Much like createMethod, but for class"
-    | class |
 
-    class := self classModelClass new
+    ^ self classModelClass new
         model: self;
         superclass: (self classNamed: #Object);
         instanceVariableNames: #();
@@ -188,13 +187,8 @@
         poolDictionaryNames: #();
         yourself.
 
-    self fillDefaultValuesTo: class.  
-    self storeDefaultClassWhenNoneStored: class.
-
-    ^ class
-
     "Created: / 09-04-2014 / 21:38:20 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-    "Modified: / 09-10-2014 / 11:18:17 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+    "Modified: / 05-02-2015 / 22:31:54 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
 !
 
 createMethod
@@ -202,19 +196,14 @@
     Creates, returns method representation
     so code changes can be created withing this class as one undo change
     "
-    | method |
 
-    method := self methodModelClass new
+    ^ self methodModelClass new
         model: self;
         sourceCodeGenerator: self sourceCodeGenerator;
         yourself.
 
-    self fillDefaultValuesTo: method.
-
-    ^ method
-
     "Created: / 09-04-2014 / 23:54:03 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-    "Modified: / 09-10-2014 / 11:25:43 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+    "Modified: / 05-02-2015 / 22:32:35 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
 ! !
 
 !CustomNamespace methodsFor:'code creation - immediate'!
@@ -390,175 +379,6 @@
     "Created: / 19-10-2014 / 14:56:49 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
 ! !
 
-!CustomNamespace methodsFor:'default values'!
-
-category:aString
-
-    self storeDefaultValue: #category: value: aString
-
-    "Created: / 29-04-2014 / 19:51:45 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-!
-
-class:aClass
-
-    self storeDefaultValue: #classes: value: (Array with: aClass)
-
-    "Created: / 29-04-2014 / 19:55:50 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-    "Modified: / 31-08-2014 / 17:01:22 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-!
-
-className:something
-
-    self storeDefaultValue: #className: value: something
-
-    "Created: / 29-04-2014 / 19:42:23 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-!
-
-classVariableNames:something
-
-    self storeDefaultValue: #classVariableNames: value: something
-
-    "Created: / 29-04-2014 / 19:43:22 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-!
-
-classes: aClassCollection
-
-    self storeDefaultValue: #classes: value: aClassCollection
-
-    "Created: / 29-04-2014 / 19:50:07 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-!
-
-fillDefaultValuesTo: aCodeElement
-    "Initializes new code element (class, method) and fills default values from this model"
-    | builderClass |
-
-    builderClass := aCodeElement class. 
-
-    defaultValues keysAndValuesDo: [ :selector :value |
-        ((builderClass includesSelector: selector) or: [self isSharedAttribute: selector]) ifTrue: [
-            aCodeElement perform: selector with: value.
-        ]
-    ].
-
-    defaultReplacements keysAndValuesDo: [ :placeholder :code |
-        aCodeElement replace: placeholder with: code 
-    ].
-
-    "Created: / 29-04-2014 / 20:21:57 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-    "Modified: / 09-10-2014 / 10:47:07 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-!
-
-forgetReplacements
-
-    defaultReplacements removeAll
-
-    "Created: / 29-04-2014 / 20:19:15 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-!
-
-instanceVariableNames:something
-
-    self storeDefaultValue: #instanceVariableNames: value: something
-
-    "Created: / 29-04-2014 / 19:44:37 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-!
-
-isDefaultValueStored: aSelector
-
-    ^ defaultValues includesKey: aSelector
-
-    "Created: / 31-08-2014 / 16:43:52 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-!
-
-isMeta:aBoolean
-
-    self storeDefaultValue: #isMeta: value: aBoolean
-
-    "Created: / 29-04-2014 / 19:47:47 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-!
-
-poolDictionaryNames:something
-
-    self storeDefaultValue: #poolDictionaryNames: value: something
-
-    "Created: / 29-04-2014 / 19:48:37 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-!
-
-protocol:aString
-
-    self storeDefaultValue: #protocol: value: aString
-
-    "Created: / 29-04-2014 / 20:01:08 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-!
-
-replace: placeholder with: code
-
-    ((self class) == CustomNamespace) ifTrue: [
-        defaultReplacements 
-            at: placeholder 
-            put: code
-    ]
-    ifFalse: [
-        "replacements 
-            at: placeholder
-            put: (self replacementFromCode: code)"
-    ]
-
-    "Created: / 29-04-2014 / 20:02:45 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-    "Modified: / 09-10-2014 / 09:18:22 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-!
-
-source:aString
-
-    self storeDefaultValue: #source: value: aString
-
-    "Created: / 29-04-2014 / 20:12:20 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-!
-
-storeDefaultClassWhenNoneStored:aClass
-    "Save class as default class when none class is actually set as default class"
-
-    (self isDefaultValueStored: #classes:) ifFalse: [
-        self storeDefaultValue: #classes: value: (Array with: aClass)
-    ]
-
-    "Created: / 31-08-2014 / 16:23:38 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-!
-
-storeDefaultValue: aSelector value: aValue
-
-    ((self class) == CustomNamespace) ifTrue: [
-        defaultValues 
-            at: aSelector 
-            put: aValue    
-    ]
-    ifFalse: [
-        self error: 'Selector ', aSelector, ' has to be overwritten by class: ', self className.
-        "
-        | superclass |
-
-        superclass := self class superclass.
-        superclass superclass isNil ifFalse: [
-            superclass := superclass superclass
-        ].
-
-        (superclass canUnderstand: aSelector) ifTrue: [
-            self assert: (superclass == CustomSourceCodeBuilder) not.
-            self perform: aSelector with: aValue   
-        ]
-        "
-    ]
-
-    "Created: / 28-04-2014 / 19:08:17 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-    "Modified: / 09-10-2014 / 09:34:39 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-!
-
-superclassName:something
-
-    self storeDefaultValue: #superclassName: value: something
-
-    "Created: / 29-04-2014 / 19:49:02 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-! !
-
 !CustomNamespace methodsFor:'initialization'!
 
 initialize
@@ -566,25 +386,13 @@
 
     super initialize.
     changeManager := CustomLocalChangeManager new.
-    defaultValues := Dictionary new.
-    defaultReplacements := Dictionary new.
     formatter := CustomRBLocalSourceCodeFormatter new.
     classModelClass := RBClass.
     methodModelClass := RBMethod.
     sourceCodeGeneratorClass := CustomSourceCodeGenerator.
 
     "Created: / 09-04-2014 / 23:44:04 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-    "Modified: / 09-10-2014 / 11:30:42 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-! !
-
-!CustomNamespace methodsFor:'private'!
-
-isSharedAttribute: aSelector
-    "Tells if given selector is shared attribute setter for subclasses"
-
-    ^ (aSelector = #package:)
-
-    "Created: / 30-08-2014 / 21:38:21 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
+    "Modified: / 05-02-2015 / 22:33:14 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
 ! !
 
 !CustomNamespace methodsFor:'testing'!
--- a/CustomNamespaceTests.st	Thu Feb 05 22:28:30 2015 +0100
+++ b/CustomNamespaceTests.st	Thu Feb 05 22:42:42 2015 +0100
@@ -89,333 +89,6 @@
     "Created: / 16-11-2014 / 17:08:44 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
 !
 
-test_chaining_api_create_class_and_method_with_default_class
-    | class |
-
-    self skipIf: true description: 'will be maybe fixed in future'. 
-
-    model
-        name: #MockClassForTestCase;
-        createClass;
-
-        protocol: 'a protocol';
-        source: '`@selector
-            self shouldImplement';
-        replace: '`@selector' with: 'aSelector';
-        createMethod;
-
-        replace: '`@selector' with: 'aSelector2';
-        createMethod.
-
-    model execute.
-
-    class := Smalltalk classNamed: 'MockClassForTestCase'.   
-
-    self assert: (class includesSelector: #aSelector).
-    self assert: (class includesSelector: #aSelector2).
-
-    self assert: (class sourceCodeAt: #aSelector) = 'aSelector
-    self shouldImplement'.
-
-    self assert: (class sourceCodeAt: #aSelector2) = 'aSelector2
-    self shouldImplement'.
-
-    "Created: / 30-08-2014 / 23:09:42 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-    "Modified: / 09-10-2014 / 22:26:01 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-!
-
-test_chaining_api_create_class_and_method_within_given_package
-    | class package method1 method2 |
-
-    self skipIf: true description: 'will be maybe fixed in future'. 
-
-    package := self class package.
-    self assert: package size > 3.
-
-    class := model
-        package: package;  
-        className: 'MockClassForTestCase';
-        createClass.
-
-    model
-        class: class;  
-        protocol: 'a protocol';
-        source: '`@selector
-            self shouldImplement';
-        replace: '`@selector' with: 'aSelector';
-        createMethod;
-
-        replace: '`@selector' with: 'aSelector2';
-        createMethod.
-
-    self assert: (class includesSelector: #aSelector) not.
-    self assert: (class includesSelector: #aSelector2) not.
-
-    model execute.
-
-    class := Smalltalk classNamed: 'MockClassForTestCase'.   
-
-    self assert: (class includesSelector: #aSelector).
-    self assert: (class includesSelector: #aSelector2).
-
-    self assert: (class sourceCodeAt: #aSelector) = 'aSelector
-    self shouldImplement'.
-
-    self assert: (class sourceCodeAt: #aSelector2) = 'aSelector2
-    self shouldImplement'.
-
-    self assert: class package equals: package.
-
-    method1 := class compiledMethodAt: #aSelector.
-
-    self assert: method1 package equals: package.
-
-    method2 := class compiledMethodAt: #aSelector2.
-
-    self assert: method2 package equals: package.
-
-    "Created: / 30-08-2014 / 22:21:31 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-    "Modified: / 09-10-2014 / 22:26:10 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-!
-
-test_chaining_api_create_class_and_method_without_given_package
-    | class package method1 method2 |
-
-    self skipIf: true description: 'will be maybe fixed in future'. 
-
-    package := self class package.
-    self assert: package size > 3.
-
-    class := model
-        className: 'MockClassForTestCase';
-        createClass.
-
-    model
-        class: class;  
-        protocol: 'a protocol';
-        source: '`@selector
-            self shouldImplement';
-        replace: '`@selector' with: 'aSelector';
-        createMethod;
-
-        replace: '`@selector' with: 'aSelector2';
-        createMethod.
-
-    self assert: (class includesSelector: #aSelector) not.
-    self assert: (class includesSelector: #aSelector2) not.
-
-    model execute.
-
-    class := Smalltalk classNamed: 'MockClassForTestCase'.   
-
-    self assert: (class includesSelector: #aSelector).
-    self assert: (class includesSelector: #aSelector2).
-
-    self assert: (class sourceCodeAt: #aSelector) = 'aSelector
-    self shouldImplement'.
-
-    self assert: (class sourceCodeAt: #aSelector2) = 'aSelector2
-    self shouldImplement'.
-
-    self deny: class package = package.
-
-    method1 := class compiledMethodAt: #aSelector.
-
-    self deny: method1 package = package.
-
-    method2 := class compiledMethodAt: #aSelector2.
-
-    self deny: method2 package = package.
-
-    "Created: / 30-08-2014 / 23:01:59 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-    "Modified: / 09-10-2014 / 22:26:18 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-!
-
-test_chaining_api_create_method
-    | class |
-
-    self skipIf: true description: 'will be maybe fixed in future'. 
-
-    class := self class.
-
-    model
-        class: class;
-        protocol: 'a protocol';
-        source: '`@selector
-    self shouldImplement';
-        replace: '`@selector' with: 'aSelector';
-        createMethod;
-
-        replace: '`@selector' with: 'aSelector2';
-        createMethod.
-
-    self assert: (class includesSelector: #aSelector) not.
-    self assert: (class includesSelector: #aSelector2) not.
-
-    model execute.
-
-    self assert: (class includesSelector: #aSelector).
-    self assert: (class includesSelector: #aSelector2).
-
-    self assert: (class sourceCodeAt: #aSelector) = 'aSelector
-    self shouldImplement'.
-
-    self assert: (class sourceCodeAt: #aSelector2) = 'aSelector2
-    self shouldImplement'.
-
-    "Created: / 27-04-2014 / 17:48:30 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-    "Modified: / 26-08-2014 / 23:39:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 09-10-2014 / 22:26:25 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-!
-
-test_chaining_api_create_method_with_class
-    | class className method |
-
-    self skipIf: true description: 'will be maybe fixed in future'. 
-
-    className := 'TestClassNameForTestCase'.
-
-    class := model
-        className: className;
-        classVariableNames: 'ClassVar1 ClassVar2';
-        instanceVariableNames: 'instVar1 instVar2';
-        poolDictionaryNames: 'dictName';
-        superclassName: 'TestCase';
-        category: 'Some-Category';
-        createClass.
-
-    model 
-        class: class;
-        protocol: 'a protocol';
-        source: '`@selector
-    self shouldImplement';
-        replace: '`@selector' with: 'aSelector';
-        createMethod.
-
-    self assertClassNotExists: className.
-    [ 
-    model execute.
-
-    class := Smalltalk classNamed: className.
-
-    self assert: class new className = className.
-    self assert: class superclass new className = 'TestCase'.
-    self assert: class instanceVariableString = 'instVar1 instVar2'.
-    self assert: class classVariableString = 'ClassVar1 ClassVar2'.
-    self assert: class poolDictionaries = 'dictName'.
-    self assert: class category = 'Some-Category'.
-
-    self assert: (class includesSelector: #aSelector).
-    self assert: (class sourceCodeAt: #aSelector) = 'aSelector
-    self shouldImplement'.
-    method := class compiledMethodAt: #aSelector.  
-    self assert: (method category) = 'a protocol'.
-    ] ensure:[
-        class notNil ifTrue:[ 
-            class removeFromSystem.
-        ].
-    ]
-
-    "Created: / 04-05-2014 / 13:00:38 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-    "Modified: / 26-08-2014 / 23:56:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 09-10-2014 / 22:27:27 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-!
-
-test_chaining_api_create_method_within_given_package
-    | class package method1 method2 |
-
-    self skipIf: true description: 'will be maybe fixed in future'. 
-
-    package := self class package.
-    self assert: package size > 3.
-
-    class := self class.
-
-    model
-        package: package;  
-        class: class;
-        protocol: 'a protocol';
-        source: '`@selector
-            self shouldImplement';
-        replace: '`@selector' with: 'aSelector';
-        createMethod;
-
-        replace: '`@selector' with: 'aSelector2';
-        createMethod.
-
-    self assert: (class includesSelector: #aSelector) not.
-    self assert: (class includesSelector: #aSelector2) not.
-
-    model execute.
-
-    self assert: (class includesSelector: #aSelector).
-    self assert: (class includesSelector: #aSelector2).
-
-    self assert: (class sourceCodeAt: #aSelector) = 'aSelector
-    self shouldImplement'.
-
-    self assert: (class sourceCodeAt: #aSelector2) = 'aSelector2
-    self shouldImplement'.
-
-    method1 := class compiledMethodAt: #aSelector.
-
-    self assert: method1 package equals: package.
-
-    method2 := class compiledMethodAt: #aSelector2.
-
-    self assert: method2 package equals: package.
-
-    "Created: / 30-08-2014 / 21:40:15 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-    "Modified: / 09-10-2014 / 22:27:33 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-!
-
-test_chaining_api_create_method_without_given_package
-    | class package method1 method2 |
-
-    self skipIf: true description: 'will be maybe fixed in future'. 
-
-    package := self class package.
-    self assert: package size > 3.
-
-    class := self class.
-
-    model
-        class: class;
-        protocol: 'a protocol';
-        source: '`@selector
-            self shouldImplement';
-        replace: '`@selector' with: 'aSelector';
-        createMethod;
-
-        replace: '`@selector' with: 'aSelector2';
-        createMethod.
-
-    self assert: (class includesSelector: #aSelector) not.
-    self assert: (class includesSelector: #aSelector2) not.
-
-    model execute.
-
-    self assert: (class includesSelector: #aSelector).
-    self assert: (class includesSelector: #aSelector2).
-
-    self assert: (class sourceCodeAt: #aSelector) = 'aSelector
-    self shouldImplement'.
-
-    self assert: (class sourceCodeAt: #aSelector2) = 'aSelector2
-    self shouldImplement'.
-
-    method1 := class compiledMethodAt: #aSelector.
-
-    self deny: method1 package = package.
-
-    method2 := class compiledMethodAt: #aSelector2.
-
-    self deny: method2 package = package.
-
-    "Created: / 30-08-2014 / 21:42:19 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-    "Modified: / 09-10-2014 / 22:27:41 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-!
-
 test_changes_empty_as_default
 
     self assert: model changes size == 0
@@ -1125,44 +798,6 @@
     "Modified: / 10-10-2014 / 16:00:56 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
 !
 
-test_one_method_for_multiple_classes
-    | classCollection classNames |
-
-    self skipIf: true description: 'will be maybe fixed in future'. 
-
-    classCollection := OrderedCollection new.
-    classNames := Array with: 'DummyClassForTestCase1' with: 'DummyClassForTestCase2'.
-
-    classCollection := classNames collect: [ :className |
-        model className: className; createClass
-    ].
-
-    model
-        classes: classCollection;
-        protocol: 'a protocol';
-        source: '`@selector
-    self shouldImplement';
-        replace: '`@selector' with: 'aSelector';
-        createMethod.
-
-    model execute.
-
-    classNames do: [ :className |
-        | class method |
-
-        class := Smalltalk classNamed: className.
-        self assert: (class includesSelector: #aSelector).
-        self assert: (class sourceCodeAt: #aSelector) = 'aSelector
-    self shouldImplement'.
-        method := class compiledMethodAt: #aSelector.  
-        self assert: (method category) = 'a protocol'.
-    ].
-
-    "Created: / 02-05-2014 / 23:31:07 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-    "Modified: / 26-08-2014 / 23:41:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 25-01-2015 / 15:56:55 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
-!
-
 test_put_model_class_changed_class
     |class|
 
--- a/patches/patches.rc	Thu Feb 05 22:28:30 2015 +0100
+++ b/patches/patches.rc	Thu Feb 05 22:42:42 2015 +0100
@@ -25,7 +25,7 @@
       VALUE "LegalCopyright", "My CopyRight or CopyLeft\0"
       VALUE "ProductName", "LibraryName\0"
       VALUE "ProductVersion", "6.2.5.1525\0"
-      VALUE "ProductDate", "Thu, 05 Feb 2015 21:27:41 GMT\0"
+      VALUE "ProductDate", "Thu, 05 Feb 2015 21:41:46 GMT\0"
     END
 
   END
--- a/refactoring_custom.rc	Thu Feb 05 22:28:30 2015 +0100
+++ b/refactoring_custom.rc	Thu Feb 05 22:42:42 2015 +0100
@@ -25,7 +25,7 @@
       VALUE "LegalCopyright", "My CopyRight or CopyLeft\0"
       VALUE "ProductName", "ProductName\0"
       VALUE "ProductVersion", "6.2.5.1525\0"
-      VALUE "ProductDate", "Thu, 05 Feb 2015 21:27:40 GMT\0"
+      VALUE "ProductDate", "Thu, 05 Feb 2015 21:41:44 GMT\0"
     END
 
   END