--- a/MetricsReporter.st Thu Mar 24 05:03:44 2016 +0000
+++ b/MetricsReporter.st Thu Mar 24 12:52:27 2016 +0100
@@ -21,6 +21,13 @@
category:'SUnit-Smalltalk/X-Report'
!
+Object subclass:#MetricInfo
+ instanceVariableNames:'shortName longName metricValue errorMessage'
+ classVariableNames:''
+ poolDictionaries:''
+ privateIn:MetricsReporter
+!
+
!MetricsReporter class methodsFor:'documentation'!
copyright
@@ -252,34 +259,42 @@
!
metricInfoFor:metric
+ |metricValue errorMessageOrNil|
+
Error handle:[:ex |
- ^ { metric class shortName . metric class descriptiveName . 0 . ex description }
+ metricValue := 0.
+ errorMessageOrNil := ex description.
] do:[
- ^ { metric class shortName . metric class descriptiveName . metric metricValue . nil }
+ metricValue := metric metricValue
].
+ ^ MetricInfo new
+ shortName:metric class shortName
+ longName:metric class descriptiveName
+ metricValue:metricValue
+ errorMessage:errorMessageOrNil
!
packageMetricValue:metricName for:aPackageIDOrPattern
|overAllInfo|
- aPackageIDOrPattern includesMatchCharacters ifTrue:[
- Smalltalk allProjectIDs do:[:eachPackageID |
- |thisInfo|
+ aPackageIDOrPattern includesMatchCharacters ifFalse:[
+ ^ self metricInfoFor:(OOM::PackageMetrics type:metricName for:aPackageIDOrPattern).
+ ].
+
+ Smalltalk allProjectIDs do:[:eachPackageID |
+ |thisInfo|
- (eachPackageID matches:aPackageIDOrPattern) ifTrue:[
- thisInfo := self metricInfoFor:(OOM::PackageMetrics type:metricName for:eachPackageID).
- overAllInfo isNil ifTrue:[
- overAllInfo := thisInfo
- ] ifFalse:[
- "/ kludge: only works with accumulative metrics (i.e. not with averages etc.)
- overAllInfo at:(overAllInfo size) put:(overAllInfo last + thisInfo last).
- ].
+ (eachPackageID matches:aPackageIDOrPattern) ifTrue:[
+ thisInfo := self metricInfoFor:(OOM::PackageMetrics type:metricName for:eachPackageID).
+ overAllInfo isNil ifTrue:[
+ overAllInfo := thisInfo
+ ] ifFalse:[
+ "/ kludge: only works with accumulative metrics (i.e. not with averages etc.)
+ overAllInfo metricValue:(overAllInfo metricValue + thisInfo metricValue).
].
].
- ^ overAllInfo
- ] ifFalse:[
- ^ self metricInfoFor:(OOM::PackageMetrics type:metricName for:aPackageIDOrPattern).
].
+ ^ overAllInfo
! !
!MetricsReporter methodsFor:'reporting'!
@@ -314,11 +329,11 @@
reportXml_metricValues:metricValues
|metricShortName metricLongName metricValue possibleErrorMessage|
- metricValues do:[:eachTuple |
- metricShortName := eachTuple first.
- metricLongName := eachTuple second.
- metricValue := eachTuple third.
- possibleErrorMessage := eachTuple at:4 ifAbsent:nil.
+ metricValues do:[:eachMetricInfo |
+ metricShortName := eachMetricInfo shortName.
+ metricLongName := eachMetricInfo longName.
+ metricValue := eachMetricInfo metricValue.
+ possibleErrorMessage := eachMetricInfo errorMessage.
possibleErrorMessage notNil ifTrue:[
metricLongName := metricLongName , '(Error: ',possibleErrorMessage,')'.
].
@@ -446,6 +461,47 @@
^ ('report' , format asString asUppercaseFirst) asSymbol
! !
+!MetricsReporter::MetricInfo methodsFor:'accessing'!
+
+errorMessage
+ ^ errorMessage
+!
+
+errorMessage:something
+ errorMessage := something.
+!
+
+longName
+ ^ longName
+!
+
+longName:something
+ longName := something.
+!
+
+metricValue
+ ^ metricValue
+!
+
+metricValue:aNumber
+ metricValue := aNumber.
+!
+
+shortName
+ ^ shortName
+!
+
+shortName:something
+ shortName := something.
+!
+
+shortName:shortNameArg longName:longNameArg metricValue:valueArg errorMessage:errorMessageArg
+ shortName := shortNameArg.
+ longName := longNameArg.
+ metricValue := valueArg.
+ errorMessage := errorMessageArg.
+! !
+
!MetricsReporter class methodsFor:'documentation'!
version