class: AbstractSourceCodeManager
added: #extractKeyValueFor:fromRevisionString:
changed: #revisionInfoFromStandardVersionString:
--- a/AbstractSourceCodeManager.st Sat Nov 29 03:33:04 2014 +0100
+++ b/AbstractSourceCodeManager.st Sat Nov 29 03:33:25 2014 +0100
@@ -2640,6 +2640,36 @@
"
!
+extractKeyValueFor:key fromRevisionString:aString
+ "{ Pragma: +optSpace }"
+
+ "extract a particular value from a string which has the format:
+ key1: value1, key2: value2, .... keyN: valueN"
+
+ |value idx1 idx2|
+
+ "/ 'Path: stx/libbasic/Array.st, Version: 123, User: cg, Time: 2011-12-21T21:03:08.826'
+
+ idx1 := aString indexOfSubCollection:(key,': ').
+ idx1 ~~ 0 ifTrue:[
+ idx1 := idx1 + (key,': ') size.
+ idx2 := aString indexOfSubCollection:', ' startingAt:idx1.
+ idx2 == 0 ifTrue:[ idx2 := aString size + 1 ].
+ value := aString copyFrom:idx1 to:idx2-1.
+ ].
+ ^ value
+
+ "
+ self
+ extractKeyValueFor:'Path'
+ fromRevisionString:'Path: stx/libbasic/Array.st, Version: 123, User: cg, Time: 2011-12-21T21:03:08.826'
+
+ self
+ extractKeyValueFor:'Time'
+ fromRevisionString:'Path: stx/libbasic/Array.st, Version: 123, User: cg, Time: 2011-12-21T21:03:08.826'
+ "
+!
+
fileOutSourceCodeExtensions: extensions package: package on: stream
"File out extension methods for given package on stream.
Not programming-language safe - can handle smalltalk methods."
@@ -2939,57 +2969,24 @@
This extracts the relevant info from aString which is in the format as created
by standardRevisionStringFor:...."
- |info path version user ts timeStamp idx1 idx2|
+ |info path version user timeStamp|
"/ 'Path: stx/libbasic/Array.st, Version: 123, User: cg, Time: 2011-12-21T21:03:08.826'
- idx1 := aString indexOfSubCollection:'Path: '.
- idx1 ~~ 0 ifTrue:[
- idx1 := idx1 + 'Path: ' size.
- idx2 := aString indexOfSubCollection:', ' startingAt:idx1.
- path := aString copyFrom:idx1 to:idx2-1.
- ].
- idx1 := aString indexOfSubCollection:'Version: '.
- idx1 ~~ 0 ifTrue:[
- idx1 := idx1 + 'Version: ' size.
- idx2 := aString indexOfSubCollection:', ' startingAt:idx1.
- idx2 == 0 ifTrue:[
- version := aString copyFrom:idx1
- ] ifFalse:[
- version := aString copyFrom:idx1 to:idx2-1.
- ].
- ].
- idx1 := aString indexOfSubCollection:'User: '.
- idx1 ~~ 0 ifTrue:[
- idx1 := idx1 + 'User: ' size.
- idx2 := aString indexOfSubCollection:', ' startingAt:idx1.
- idx2 == 0 ifTrue:[
- user := aString copyFrom:idx1
- ] ifFalse:[
- user := aString copyFrom:idx1 to:idx2-1.
- ].
- ].
- idx1 := aString indexOfSubCollection:'Time: '.
- idx1 ~~ 0 ifTrue:[
- idx1 := idx1 + 'Time: ' size.
- idx2 := aString indexOfSubCollection:', ' startingAt:idx1.
- idx2 == 0 ifTrue:[
- ts := aString copyFrom:idx1
- ] ifFalse:[
- ts := aString copyFrom:idx1 to:idx2-1.
- ].
- timeStamp := Timestamp readIso8601FormatFrom:ts
- ].
+ path := self extractKeyValueFor:'Path' fromRevisionString:aString.
+ version := self extractKeyValueFor:'Version' fromRevisionString:aString.
+ user := self extractKeyValueFor:'User' fromRevisionString:aString.
+ timeStamp := self extractKeyValueFor:'Time' fromRevisionString:aString.
info := self versionInfoClass new.
path notNil ifTrue:[ info fileName:(path asFilename baseName) ].
info revision:version.
user notNil ifTrue:[ info user:user ].
- timeStamp notNil ifTrue:[ info timeStamp:timeStamp ].
+ timeStamp notNil ifTrue:[ info timeStamp:(Timestamp readFrom:timeStamp) ].
^ info
"
- self revisionInfoFromString:'Path: stx/libbasic/Array.st, Version: 123, User: cg, Time: 2011-12-21T21:03:08.826'
+ self revisionInfoFromStandardVersionString:'Path: stx/libbasic/Array.st, Version: 123, User: cg, Time: 2011-12-21T21:03:08.826'
"
"Created: / 23-07-2012 / 18:45:41 / cg"
@@ -3984,15 +3981,15 @@
!AbstractSourceCodeManager class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic3/AbstractSourceCodeManager.st,v 1.335 2014-11-29 02:06:15 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic3/AbstractSourceCodeManager.st,v 1.336 2014-11-29 02:33:25 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libbasic3/AbstractSourceCodeManager.st,v 1.335 2014-11-29 02:06:15 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic3/AbstractSourceCodeManager.st,v 1.336 2014-11-29 02:33:25 cg Exp $'
!
version_SVN
- ^ '$Id: AbstractSourceCodeManager.st,v 1.335 2014-11-29 02:06:15 cg Exp $'
+ ^ '$Id: AbstractSourceCodeManager.st,v 1.336 2014-11-29 02:33:25 cg Exp $'
! !