The Inbox: Monticello-jr.662.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Inbox: Monticello-jr.662.mcz

commits-2
A new version of Monticello was added to project The Inbox:
http://source.squeak.org/inbox/Monticello-jr.662.mcz

==================== Summary ====================

Name: Monticello-jr.662
Author: jr
Time: 12 February 2017, 4:32:10.446498 pm
UUID: 91d400b5-f770-9b4d-ab42-2f06632a0179
Ancestors: Monticello-mva.661

add support for restoring Trait comments from st snapshots

Previously, the Trait definition was only treated as
doIt in FilePackage and converted to a MCTraitDefinition
by MCTraitParser. The latter does not have access
to the PseudoClasses of the FilePackage and, thus,
could not access the Trait's comment, leaving it empty.
System-jr.919 adds PseudoTraits in FilePackage,
so a correct conversion into MCTraitDefinitions
including the comment is now possible.

=============== Diff against Monticello-mva.661 ===============

Item was changed:
  ----- Method: FilePackage>>classDefinition:with: (in category '*monticello') -----
  classDefinition: string with: chgRec
  | tokens theClass |
-
- self flag: #traits.
 
  tokens := Scanner new scanTokens: string.
 
  "tokens size = 11 ifFalse:[^doIts add: chgRec]."
 
  theClass := self getClass: (tokens at: 3).
  theClass definition: string.
  classOrder add: theClass.!

Item was added:
+ ----- Method: FilePackage>>traitDefinition:with: (in category '*monticello') -----
+ traitDefinition: string with: chgRec
+ | tokens theTrait |
+ tokens := Scanner new scanTokens: string.
+ theTrait := self getTrait: (tokens at: 3).
+ theTrait definition: string.
+ classOrder add: theTrait.!

Item was changed:
  ----- Method: MCStReader>>loadDefinitions (in category 'evaluating') -----
  loadDefinitions
  | filePackage |
  filePackage :=
  FilePackage new
  fullName: 'ReadStream';
  fileInFrom: self readStream.
  definitions := OrderedCollection new.
  filePackage classes do:
  [:pseudoClass |
  pseudoClass hasDefinition
  ifTrue: [definitions add:
+ (pseudoClass asMCDefinitionBy: self)].
- (self classDefinitionFrom: pseudoClass)].
  definitions addAll: (self methodDefinitionsFor: pseudoClass).
  definitions addAll: (self methodDefinitionsFor: pseudoClass metaClass)].
  filePackage doIts do:
  [:ea |
  self addDefinitionsFromDoit: ea string].
  !

Item was added:
+ ----- Method: MCStReader>>traitDefinitionFrom: (in category 'as yet unclassified') -----
+ traitDefinitionFrom: aPseudoTrait
+ | tokens traitCompositionString lastIndex |
+ tokens := Scanner new scanTokens: aPseudoTrait definition.
+ traitCompositionString := ((ReadStream on: aPseudoTrait definition)
+ match: 'uses:';
+ upToAll: 'category:') withBlanksTrimmed.
+ traitCompositionString isEmpty ifTrue: [traitCompositionString := '{}'].
+ lastIndex := tokens size.
+ ^ MCTraitDefinition
+ name: (tokens at: 3)
+ traitComposition: traitCompositionString
+ category: (tokens at: lastIndex)
+ comment: (self commentFor: aPseudoTrait)
+ commentStamp: (self commentStampFor: aPseudoTrait)!

Item was added:
+ ----- Method: PseudoClass>>asMCDefinitionBy: (in category '*monticello') -----
+ asMCDefinitionBy: aMCReader
+ ^ aMCReader classDefinitionFrom: self!

Item was added:
+ ----- Method: PseudoTrait>>asMCDefinitionBy: (in category '*monticello') -----
+ asMCDefinitionBy: aMCReader
+ ^ aMCReader traitDefinitionFrom: self!