Fossil > parents are now fossil commit objects instead of plain text of the uuid.

This commit is contained in:
Offray Vladimir Luna Cárdenas 2015-06-15 12:37:27 +00:00
parent 553d8b8552
commit 5b6435ee86

View File

@ -38,26 +38,25 @@ FossilTimeline >> commits: anObject [
FossilTimeline >> importFromUrl: aJsonFileUrl [ FossilTimeline >> importFromUrl: aJsonFileUrl [
"Imports all commits stored in aJsonFileUrl and converts them in a collection of FossilCommit objects" "Imports all commits stored in aJsonFileUrl and converts them in a collection of FossilCommit objects"
| commitsDict parents i | | commitsDict |
"Extracting data" "Extracting data"
commitsDict := ((NeoJSONReader fromString: (aJsonFileUrl asUrl retrieveContents asString)) at: 'payload') at: 'timeline'. commitsDict := ((NeoJSONReader fromString: (aJsonFileUrl asUrl retrieveContents asString)) at: 'payload') at: 'timeline'.
"Adding all commits except the first one who has no parents" "Adding all commits except the first one who has no parents"
self commits: (commitsDict collect: [:commit | self commits: (commitsDict collect: [:commit |
FossilCommit new FossilCommit new
uuid: (commit at: 'uuid'); uuid: (commit at: 'uuid');
type: (commit at: 'type'); type: (commit at: 'type');
timestamp: (commit at: 'timestamp'); timestamp: (commit at: 'timestamp');
user: (commit at: 'user'); user: (commit at: 'user');
comment: (commit at: 'comment'); comment: (commit at: 'comment');
tags: (commit at: 'tags')]). tags: (commit at: 'tags')]).
"Adding parents for all commits except the first one who has no parents" "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 | self commits allButLastDo: [:commit |
i := i + 1. commit parents: (
commit parents: (parents at: i)] "Seach for every parent in the commitsDict and adding it as parent to the commit properties"
commits select: [:each | each uuid = (((commitsDict at: 1) at: 'parents') at: 1)])]
] ]
{ #category : #'as yet unclassified' } { #category : #'as yet unclassified' }
@ -66,3 +65,10 @@ FossilTimeline >> initialize [
super initialize super initialize
] ]
{ #category : #accessing }
FossilTimeline >> parentsFor: aCommit [
"Returns the elements which are parents for aCommit"
^ self commits select: [:commit | commit uuid = (aCommit parents at: 1)]
]