A new class for external tools, starting with Fossil-SCM :-) and its timeline visualization (which is still pending).

This commit is contained in:
Offray Vladimir Luna Cárdenas 2015-06-15 07:55:10 +00:00
parent 83685cb9fe
commit 264193be5e
3 changed files with 225 additions and 0 deletions

View File

@ -0,0 +1,29 @@
"
I store all the commits under a branch name in a timeline for a fossil repository
Public API and Key Messages
- message one
- message two
- what is the way to create instances is a plus.
One simple example is simply gorgeous.
Internal Representation and Key Implementation Points.
Instance Variables
commits: <Object>
name: <Object>
Implementation Points
"
Class {
#name : #FossilBranch,
#superclass : #Object,
#instVars : [
'name',
'commits'
],
#category : #'Grafoscopio-ExternalTools'
}

View File

@ -0,0 +1,133 @@
"
I'm FossilCommit the representation of a commit in the history of a fossil repository.
I store the data of a single fossil commit, to help in the interaction with external fossil repositories and the
internal smalltalk objects. I was created to facilitate graphical representation of fossil repositorires inside Roassal.
For the Collaborators Part: State my main collaborators and one line about how I interact with them.
Public API and Key Messages
- message one
- message two
- what is the way to create instances is a plus.
One simple example is simply gorgeous.
Internal Representation and Key Implementation Points.
Instance Variables
comment: <Object>
isLeaf: <Object>
parents: <Object>
tags: <Object>
timestamp: <Object>
type: <Object>
user: <Object>
uuid: <Object>
Implementation Points
"
Class {
#name : #FossilCommit,
#superclass : #Object,
#instVars : [
'isLeaf',
'type',
'timestamp',
'user',
'uuid',
'comment',
'parents',
'tags'
],
#category : #'Grafoscopio-ExternalTools'
}
{ #category : #accessing }
FossilCommit >> comment [
^ comment
]
{ #category : #accessing }
FossilCommit >> comment: anObject [
comment := anObject
]
{ #category : #initializing }
FossilCommit >> initialize [
"Creates an empty commit"
super initialize.
]
{ #category : #accessing }
FossilCommit >> isLeaf [
^ isLeaf
]
{ #category : #accessing }
FossilCommit >> isLeaf: anObject [
isLeaf := anObject
]
{ #category : #accessing }
FossilCommit >> parents [
^ parents
]
{ #category : #accessing }
FossilCommit >> parents: anObject [
parents := anObject
]
{ #category : #accessing }
FossilCommit >> tags [
^ tags
]
{ #category : #accessing }
FossilCommit >> tags: anObject [
tags := anObject
]
{ #category : #accessing }
FossilCommit >> timestamp [
^ timestamp
]
{ #category : #accessing }
FossilCommit >> timestamp: anObject [
timestamp := anObject
]
{ #category : #accessing }
FossilCommit >> type [
^ type
]
{ #category : #accessing }
FossilCommit >> type: anObject [
type := anObject
]
{ #category : #accessing }
FossilCommit >> user [
^ user
]
{ #category : #accessing }
FossilCommit >> user: anObject [
user := anObject
]
{ #category : #accessing }
FossilCommit >> uuid [
^ uuid
]
{ #category : #accessing }
FossilCommit >> uuid: anObject [
uuid := anObject
]

View File

@ -0,0 +1,63 @@
"
I store all commits in a fossil timeline.
- message one
- message two
- what is the way to create instances is a plus.
One simple example is simply gorgeous.
Internal Representation and Key Implementation Points.
Instance Variables
commits: <Object>
Implementation Points
"
Class {
#name : #FossilTimeline,
#superclass : #Object,
#instVars : [
'commits'
],
#category : #'Grafoscopio-ExternalTools'
}
{ #category : #accessing }
FossilTimeline >> commits [
^ commits
]
{ #category : #accessing }
FossilTimeline >> commits: anObject [
commits := anObject
]
{ #category : #'as yet unclassified' }
FossilTimeline >> importFromUrl: aJsonFileUrl [
"Imports all commits stored in aJsonFileUrl and converts them in a collection of FossilCommit objects"
| commitsDict |
"Extracting data"
commitsDict := ((NeoJSONReader fromString: (aJsonFileUrl asUrl retrieveContents asString)) at: 'payload') at: 'timeline'.
"Transforming the data"
self commits: (commitsDict collect: [:commit |
FossilCommit new
uuid: (commit at: 'uuid');
type: (commit at: 'type');
timestamp: (commit at: 'timestamp');
user: (commit at: 'user');
comment: (commit at: 'comment');
"parents: (commit at: 'parents');"
tags: (commit at: 'tags')]).
]
{ #category : #'as yet unclassified' }
FossilTimeline >> initialize [
"comment stating purpose of message"
super initialize
]