New methods for updating documentation.
This commit is contained in:
parent
c298317620
commit
ca68729708
@ -22,12 +22,30 @@ GrafoscopioDocumentation class >> current [
|
|||||||
| gfcDocumentation |
|
| gfcDocumentation |
|
||||||
gfcDocumentation := self new.
|
gfcDocumentation := self new.
|
||||||
gfcDocumentation repository: (FossilRepo new url: 'http://mutabit.com/repos.fossil/grafoscopio').
|
gfcDocumentation repository: (FossilRepo new url: 'http://mutabit.com/repos.fossil/grafoscopio').
|
||||||
gfcDocumentation documents add: 'Docs/Es/Tutoriales/tutorial.ston'.
|
gfcDocumentation documents
|
||||||
|
add: 'Docs/Es/Tutoriales/tutorial.ston';
|
||||||
|
add: 'Docs/Es/Manual/manual-grafoscopio.ston';
|
||||||
|
add: 'Docs/En/dev-notes.ston'.
|
||||||
gfcDocumentation localPlace.
|
gfcDocumentation localPlace.
|
||||||
^ gfcDocumentation
|
^ gfcDocumentation
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
|
{ #category : #updating }
|
||||||
|
GrafoscopioDocumentation class >> download: fileNameWithRelativePath [
|
||||||
|
| fileName relativePathFolders newPath parentFolder |
|
||||||
|
fileName := (fileNameWithRelativePath splitOn: $/) last.
|
||||||
|
relativePathFolders := (fileNameWithRelativePath splitOn: $/) allButLast.
|
||||||
|
newPath := self current localPlace path.
|
||||||
|
relativePathFolders do: [ :folder | newPath := newPath / folder ].
|
||||||
|
parentFolder := newPath asFileReference.
|
||||||
|
parentFolder exists ifFalse: [ parentFolder ensureCreateDirectory ].
|
||||||
|
GrafoscopioGUI
|
||||||
|
downloadingFrom: self current repository url asString, '/doc/tip/', fileNameWithRelativePath
|
||||||
|
withMessage: 'Downloading ', fileName
|
||||||
|
into: parentFolder
|
||||||
|
]
|
||||||
|
|
||||||
{ #category : #updating }
|
{ #category : #updating }
|
||||||
GrafoscopioDocumentation class >> isUpdated [
|
GrafoscopioDocumentation class >> isUpdated [
|
||||||
^ (self listOutdated size > 0) ifTrue: [ ^ false ] ifFalse: [ ^ true ]
|
^ (self listOutdated size > 0) ifTrue: [ ^ false ] ifFalse: [ ^ true ]
|
||||||
@ -50,6 +68,16 @@ GrafoscopioDocumentation class >> listOutdated [
|
|||||||
^ self current documents select: [ :doc | (self isUpdatedFor: doc) = false ]
|
^ self current documents select: [ :doc | (self isUpdatedFor: doc) = false ]
|
||||||
]
|
]
|
||||||
|
|
||||||
|
{ #category : #updating }
|
||||||
|
GrafoscopioDocumentation class >> update [
|
||||||
|
self isUpdated
|
||||||
|
ifTrue: [ self inform: 'All documents are already updated' ]
|
||||||
|
ifFalse: [
|
||||||
|
self listOutdated do: [ :eachDoc | self download: eachDoc ].
|
||||||
|
self inform: 'Documentation updating finished']
|
||||||
|
|
||||||
|
]
|
||||||
|
|
||||||
{ #category : #accessing }
|
{ #category : #accessing }
|
||||||
GrafoscopioDocumentation >> documents [
|
GrafoscopioDocumentation >> documents [
|
||||||
^ documents ifNil: [ documents := OrderedCollection new ]
|
^ documents ifNil: [ documents := OrderedCollection new ]
|
||||||
|
@ -301,31 +301,6 @@ GrafoscopioGUI class >> initialize [
|
|||||||
self startDockingBar.
|
self startDockingBar.
|
||||||
]
|
]
|
||||||
|
|
||||||
{ #category : #updating }
|
|
||||||
GrafoscopioGUI class >> isDocUpdatedFor: aDocumentType [
|
|
||||||
"I compare the cryptografic signatures of the local copy of aDocumentType and the remote one to see if the're
|
|
||||||
the same, in which case I return True or False in any other cases.
|
|
||||||
aDocumentType is a string that can be 'tutorial' or 'manual' according to the type of document
|
|
||||||
we're querying for.
|
|
||||||
Now documentation is mainly on Spanish. When support for multiple languages be enabled this method needs
|
|
||||||
revision"
|
|
||||||
| folderLastContents lastRemoteTutorial localTutorial docInfo |
|
|
||||||
(aDocumentType = 'tutorial') ifTrue: [ docInfo := self docDataTutorial ].
|
|
||||||
(aDocumentType = 'manual') ifTrue: [ docInfo := self docDataManual ].
|
|
||||||
localTutorial := FileLocator documents / 'Grafoscopio', (docInfo at: 'relativePath'), (docInfo at: 'filename').
|
|
||||||
localTutorial exists
|
|
||||||
ifFalse: [
|
|
||||||
self docDownloadFor: 'tutorial'.
|
|
||||||
^ true.
|
|
||||||
]
|
|
||||||
ifTrue: [
|
|
||||||
folderLastContents := NeoJSONReader fromString:
|
|
||||||
(ZnEasy get: (docInfo at: 'remoteRepo'), 'json/dir?ci=tip&name=', (docInfo at: 'relativePath')) contents.
|
|
||||||
lastRemoteTutorial := ((folderLastContents at: 'payload') at: 'entries')
|
|
||||||
detect: [:entry | (entry at: 'name') = (docInfo at: 'filename') ].
|
|
||||||
^ (lastRemoteTutorial at: 'uuid') = (SHA1 new hashMessage: (localTutorial asFileReference contents)) hex]
|
|
||||||
]
|
|
||||||
|
|
||||||
{ #category : #'graphical interface' }
|
{ #category : #'graphical interface' }
|
||||||
GrafoscopioGUI class >> messageAbout [
|
GrafoscopioGUI class >> messageAbout [
|
||||||
"Shows the author, license, sponsors and main contributors to the project and point to further documentation on the web"
|
"Shows the author, license, sponsors and main contributors to the project and point to further documentation on the web"
|
||||||
|
Loading…
Reference in New Issue
Block a user