reports/Builder__Report.st
branchjv
changeset 570 9c47ccc9e9b5
parent 231 9551cb7cfe38
equal deleted inserted replaced
569:67563f72d36b 570:9c47ccc9e9b5
       
     1 "
       
     2 COPYRIGHT (c) 2021 LabWare
       
     3 "
     1 "{ Package: 'stx:goodies/builder/reports' }"
     4 "{ Package: 'stx:goodies/builder/reports' }"
     2 
     5 
     3 "{ NameSpace: Builder }"
     6 "{ NameSpace: Builder }"
     4 
     7 
     5 Object subclass:#Report
     8 Object subclass:#Report
     7 	classVariableNames:'Verbose OutputDir'
    10 	classVariableNames:'Verbose OutputDir'
     8 	poolDictionaries:''
    11 	poolDictionaries:''
     9 	category:'Builder-Reports'
    12 	category:'Builder-Reports'
    10 !
    13 !
    11 
    14 
       
    15 !Report class methodsFor:'documentation'!
       
    16 
       
    17 copyright
       
    18 "
       
    19 COPYRIGHT (c) 2021 LabWare
       
    20 
       
    21 "
       
    22 ! !
    12 
    23 
    13 !Report class methodsFor:'initialization'!
    24 !Report class methodsFor:'initialization'!
    14 
    25 
    15 initialize
    26 initialize
    16 
    27 
   294 encodeFilename:arg
   305 encodeFilename:arg
   295     ^ self class encodeFilename:arg
   306     ^ self class encodeFilename:arg
   296 !
   307 !
   297 
   308 
   298 loadPackageIfNotAlready: pkg
   309 loadPackageIfNotAlready: pkg
   299     "Loads a package, if it is not loaded already. 
   310     "Loads a package, if it is not loaded already."
   300      Raises an error if package cannot be loaded"
       
   301 
       
   302     | def |
   311     | def |
   303     def := ProjectDefinition definitionClassForPackage:pkg.
   312     def := ProjectDefinition definitionClassForPackage:pkg.
   304     def isNil ifTrue:[ 
   313     def isNil ifTrue:[ 
   305         (Smalltalk loadPackage:pkg) ifFalse:[
   314         (Smalltalk loadPackage:pkg) ifFalse:[
   306             self error:'Cannot load package: ', pkg.
   315             self error:'Cannot load package: ', pkg.
   307         ].
   316         ].
   308         def := ProjectDefinition definitionClassForPackage:pkg. 
   317         def := ProjectDefinition definitionClassForPackage:pkg. 
   309     ].
   318     ].
   310     def isNil ifTrue:[
       
   311         self error:'Package loaded but project definition not found: ', pkg.
       
   312     ].
       
   313 
   319 
   314     "Created: / 13-01-2012 / 12:56:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   320     "Created: / 13-01-2012 / 12:56:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   315 ! !
   321 ! !
   316 
   322 
   317 !Report methodsFor:'running'!
   323 !Report methodsFor:'running'!
   318 
   324 
   319 run
   325 run
       
   326     | status |
   320 
   327 
   321     self setUp.
   328     self setUp.
   322     format writeHeader.
   329     format writeHeader.
   323     [ self runReport ] ensure:[
   330     [ 
       
   331         status := self runReport 
       
   332     ] ensure:[
   324         format writeFooter.
   333         format writeFooter.
   325         self tearDown.
   334         self tearDown.
   326     ]
   335     ].
       
   336     ^ status "return exit code"
   327 
   337 
   328     "Modified: / 04-08-2011 / 12:42:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   338     "Modified: / 04-08-2011 / 12:42:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
   339     "Modified: / 03-12-2021 / 13:12:26 / Jan Vrany <jan.vrany@labware.com>"
   329 !
   340 !
   330 
   341 
   331 runClasses:classes named:aString 
   342 runClasses:classes named:aString 
   332     name := aString.
   343     name := aString.
   333     self setupForClasses:classes.
   344     self setupForClasses:classes.
   358     "Modified: / 25-06-2013 / 01:03:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   369     "Modified: / 25-06-2013 / 01:03:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   359 !
   370 !
   360 
   371 
   361 runReport
   372 runReport
   362     "Actually run the report. What to do (what classes/packages to check)
   373     "Actually run the report. What to do (what classes/packages to check)
   363      must be stored instance variables"
   374      must be stored instance variables before calling this method.
       
   375 
       
   376      Return an exit code (a zero when everything went fine, non-zero
       
   377      in case of some erorr, failure). This exit code is used as program
       
   378      exit code when running from command line.
       
   379     "
   364 
   380 
   365     ^ self subclassResponsibility
   381     ^ self subclassResponsibility
   366 
   382 
   367     "Created: / 04-08-2011 / 12:39:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   383     "Created: / 04-08-2011 / 12:39:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
   384     "Modified (comment): / 03-12-2021 / 13:09:31 / Jan Vrany <jan.vrany@labware.com>"
   368 !
   385 !
   369 
   386 
   370 setUp
   387 setUp
   371 
   388 
   372     | filename stream | 
   389     | filename stream |