GrafoscopioDocumentation: moving methods to

instance side, where makes more sense.
This commit is contained in:
Offray Vladimir Luna Cárdenas 2017-07-04 14:24:31 +00:00 committed by SantiagoBragagnolo
parent 5f1fe14d93
commit 677a357891
1 changed files with 89 additions and 34 deletions

View File

@ -9,7 +9,8 @@ Class {
#instVars : [
'repository',
'documents',
'localPlace'
'localPlace',
'name'
],
#category : #'Grafoscopio-Utils'
}
@ -45,21 +46,6 @@ GrafoscopioDocumentation class >> dataviz [
^ 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 ].
GrafoscopioDockingBar
downloadingFrom: self current repository remote asString, '/doc/tip/', fileNameWithRelativePath
withMessage: 'Downloading ', fileName
into: parentFolder
]
{ #category : #updating }
GrafoscopioDocumentation class >> initialize [
self
@ -67,17 +53,6 @@ GrafoscopioDocumentation class >> initialize [
update: 'dataviz'
]
{ #category : #updating }
GrafoscopioDocumentation class >> isFileUpdatedFor: relativeFilePath [
"I compare if the local and remote copies of a relativeFilePath are updated for the current
documentation and return true if they are and false in any other case"
| localFile |
localFile := self current localPlace / relativeFilePath.
localFile exists
ifFalse: [ ^ false ]
ifTrue: [ ^ ExternalApp compareHashFor: localFile with: (self current repository lastHashNumberFor: relativeFilePath) ]
]
{ #category : #updating }
GrafoscopioDocumentation class >> listOutdatedDocsIn: aDocumentsListName [
"I return the list of all documentent where the local copy and the remote copy doesn't match"
@ -192,16 +167,75 @@ GrafoscopioDocumentation >> documents: anObject [
documents := anObject
]
{ #category : #accessing }
GrafoscopioDocumentation >> localPlace [
^ localPlace ifNil: [
localPlace := FileLocator workingDirectory asFileReference / 'Grafoscopio'.
self localPlace exists ifFalse: [ self localPlace ensureCreateDirectory ] ].
{ #category : #updating }
GrafoscopioDocumentation >> download: fileNameWithRelativePath [
| fileName relativePathFolders newPath parentFolder |
fileName := (fileNameWithRelativePath splitOn: $/) last.
relativePathFolders := (fileNameWithRelativePath splitOn: $/) allButLast.
newPath := self localPlace path.
relativePathFolders do: [ :folder | newPath := newPath / folder ].
parentFolder := newPath asFileReference.
parentFolder exists ifFalse: [ parentFolder ensureCreateDirectory ].
GrafoscopioUtils
downloadingFrom: self repository remote asString, '/doc/tip/', fileNameWithRelativePath
withMessage: 'Downloading ', fileName
into: parentFolder
]
{ #category : #updating }
GrafoscopioDocumentation >> isFileUpdatedFor: relativeFilePath [
"I compare if the local and remote copies of a relativeFilePath are updated for the current
documentation and return true if they are and false in any other case"
| localFile |
localFile := self localPlace / relativeFilePath.
localFile exists
ifFalse: [ ^ false ]
ifTrue: [
^ ExternalApp
compareHashFor: localFile
with: (self repository lastHashNumberFor: relativeFilePath) ]
]
{ #category : #updating }
GrafoscopioDocumentation >> listOutdatedDocs [
"I return the list of all documentent where the local copy and the remote copy doesn't match"
^ self documents reject: [ :doc | (self isFileUpdatedFor: doc) ]
]
{ #category : #accessing }
GrafoscopioDocumentation >> localPlace: anObject [
localPlace := anObject
GrafoscopioDocumentation >> localPlace [
^ localPlace ifNil: [
localPlace := FileLocator workingDirectory asFileReference / 'Grafoscopio' ].
]
{ #category : #accessing }
GrafoscopioDocumentation >> localPlace: aFileDirectory [
localPlace := aFileDirectory.
self localPlace exists ifFalse: [ self localPlace ensureCreateDirectory ].
]
{ #category : #accessing }
GrafoscopioDocumentation >> name [
^ name
]
{ #category : #accessing }
GrafoscopioDocumentation >> name: anObject [
name := anObject
]
{ #category : #accessing }
GrafoscopioDocumentation >> openNotebookAt: index [
"I open a notebook included with the documentation, located at a given index (anInteger)"
| notebookTemp |
(index between: 1 and: self documents size)
ifFalse: [ ^ self ]
ifTrue: [
notebookTemp := (self localPlace fullName, '/', (self documents at: index)) asFileReference.
notebookTemp exists
ifTrue: [GrafoscopioNotebook new openFromFile: notebookTemp]
ifFalse: [ self updateUI ]]
]
{ #category : #accessing }
@ -213,3 +247,24 @@ GrafoscopioDocumentation >> repository [
GrafoscopioDocumentation >> repository: anObject [
repository := anObject
]
{ #category : #updating }
GrafoscopioDocumentation >> update [
(self listOutdatedDocs)
ifEmpty: [
self inform: 'All documents in the ', self name,' collection are already updated'.
^ self ]
ifNotEmpty: [:outdatedDocs |
outdatedDocs do: [ :eachDoc | self download: eachDoc].
self inform: 'Updating of ', self name,' documentation finished.' ]
]
{ #category : #updating }
GrafoscopioDocumentation >> updateUI [
"Updates documentation (manual, tutorials) from the official repository for a given documentation."
| update |
update := (UIManager default
confirm: 'Do you wish to update the ', self name,' documentation?'
label: 'Update ', self name, ' documentation').
update ifTrue: [ self update ]
]