Tools__ChangeSetSpec.st
branchjv
changeset 13674 7cf98b160823
parent 12431 9f0c59c742d5
child 13748 739a203e87f1
--- a/Tools__ChangeSetSpec.st	Mon Nov 11 13:38:07 2013 +0000
+++ b/Tools__ChangeSetSpec.st	Tue Nov 12 21:47:38 2013 +0000
@@ -48,6 +48,13 @@
 	privateIn:ChangeSetSpec
 !
 
+ChangeSetSpec::Directory subclass:#PackageDirectory
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	privateIn:ChangeSetSpec
+!
+
 !ChangeSetSpec class methodsFor:'documentation'!
 
 copyright
@@ -119,10 +126,10 @@
 
 specClasses
 
-    ^self allSubclasses"/ reject:[:e|e == Explicit]
+    ^(self allSubclasses " reject:[:e|e == Explicit]") asSortedCollection:[:a :b | a name < b name ].
 
     "Created: / 05-07-2011 / 23:30:45 / jv"
-    "Modified: / 03-08-2012 / 15:21:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 12-11-2013 / 15:18:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !ChangeSetSpec methodsFor:'accessing'!
@@ -346,9 +353,10 @@
 label
     "superclass Tools::ChangeSetSpec class says that I am responsible to implement this method"
 
-    ^ 'Loaded package'
+    ^ 'Package (in image)'
 
     "Modified: / 05-07-2011 / 23:31:34 / jv"
+    "Modified: / 12-11-2013 / 15:17:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !ChangeSetSpec::Package methodsFor:'accessing'!
@@ -378,6 +386,45 @@
     "Created: / 20-03-2012 / 14:59:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!ChangeSetSpec::PackageDirectory class methodsFor:'accessing'!
+
+label
+    "superclass Tools::ChangeSetSpec class says that I am responsible to implement this method"
+
+    ^ 'Package (in directory)'
+
+    "Created: / 12-11-2013 / 15:17:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!ChangeSetSpec::PackageDirectory methodsFor:'accessing'!
+
+changeSet
+    "superclass Tools::ChangeSetSpec says that I am responsible to implement this method"
+
+    | name files cs |
+
+    name := directory asString.
+    name size > 50 ifTrue:[
+        name := '...' , (name copyFrom: name size - 47)
+    ].
+
+    (directory asFilename / 'abbrev.stc') exists ifTrue:[
+        (directory asFilename / 'abbrev.stc') readingFileDo:[:s |
+            files := OrderedCollection new.
+            Smalltalk withAbbreviationsFromStream:  s do:[:className :abbrev :pkg  | files add: (abbrev , '.st')]
+        ].
+        cs := ChangeSet fromDirectory: self directory filter:[:filename | files includes: filename baseName ].
+    ] ifFalse:[
+        cs := ChangeSet fromDirectory: self directory
+    ].
+     ^cs
+        name: name;
+        yourself
+
+    "Created: / 12-11-2013 / 15:20:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 12-11-2013 / 17:00:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !ChangeSetSpec class methodsFor:'documentation'!
 
 version_CVS