diff --git a/repository/Grafoscopio/FossilTimeline.class.st b/repository/Grafoscopio/FossilTimeline.class.st index 811e6a3..1391605 100644 --- a/repository/Grafoscopio/FossilTimeline.class.st +++ b/repository/Grafoscopio/FossilTimeline.class.st @@ -38,12 +38,12 @@ FossilTimeline >> commits: anObject [ FossilTimeline >> importFromUrl: aJsonFileUrl [ "Imports all commits stored in aJsonFileUrl and converts them in a collection of FossilCommit objects" - | commitsDict | + | commitsDict parents i | "Extracting data" commitsDict := ((NeoJSONReader fromString: (aJsonFileUrl asUrl retrieveContents asString)) at: 'payload') at: 'timeline'. - "Transforming the data" + "Adding all commits except the first one who has no parents" self commits: (commitsDict collect: [:commit | FossilCommit new uuid: (commit at: 'uuid'); @@ -51,8 +51,13 @@ FossilTimeline >> importFromUrl: aJsonFileUrl [ timestamp: (commit at: 'timestamp'); user: (commit at: 'user'); comment: (commit at: 'comment'); - "parents: (commit at: 'parents');" tags: (commit at: 'tags')]). + "Adding parents for all commits except the first one who has no parents" + parents := commitsDict allButLast collect: [:each | (each at: 'parents')]. + i := 0. + self commits allButLastDo: [:commit | + i := i + 1. + commit parents: (parents at: i)] ] { #category : #'as yet unclassified' }