Moving GrafoscopioDocumentation to Grafoscopio-Utils package, to improve modularity
and usability.
This commit is contained in:
parent
44e0b6c132
commit
33407ef7dd
@ -1,201 +0,0 @@
|
|||||||
"
|
|
||||||
I provide support for external helper apps for Grafoscopio, publishing, collaboration
|
|
||||||
and data management.
|
|
||||||
"
|
|
||||||
Class {
|
|
||||||
#name : #ExternalApp,
|
|
||||||
#superclass : #Object,
|
|
||||||
#instVars : [
|
|
||||||
'name',
|
|
||||||
'url',
|
|
||||||
'downloadUrl',
|
|
||||||
'description',
|
|
||||||
'sha1',
|
|
||||||
'md5',
|
|
||||||
'binaryLocation'
|
|
||||||
],
|
|
||||||
#category : #'Grafoscopio-Model'
|
|
||||||
}
|
|
||||||
|
|
||||||
{ #category : #installation }
|
|
||||||
ExternalApp class >> compareHashFor: aFileName with: aSHAString [
|
|
||||||
|
|
||||||
aSHAString = (SHA1 new hashMessage: aFileName asFileReference binaryReadStream contents) hex
|
|
||||||
ifFalse: [ ^ false ]
|
|
||||||
ifTrue: [ ^ true ].
|
|
||||||
]
|
|
||||||
|
|
||||||
{ #category : #configuration }
|
|
||||||
ExternalApp class >> configureFossil [
|
|
||||||
"Stablish where is located fossil according to the operative system and/or the input of the user"
|
|
||||||
| fileStream fossil |
|
|
||||||
|
|
||||||
fileStream := UIManager default fileOpen: 'Path to the fossil program binary'.
|
|
||||||
fileStream isNil ifTrue: [ ^nil ].
|
|
||||||
fossil := fileStream name asFileReference fullName.
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
{ #category : #configuration }
|
|
||||||
ExternalApp class >> configurePandoc [
|
|
||||||
"Stablish where is located pandoc according to the operative system and/or the input of the user"
|
|
||||||
| fileStream pandoc |
|
|
||||||
|
|
||||||
fileStream := UIManager default fileOpen: 'Path to pandoc program binary'.
|
|
||||||
fileStream isNil ifTrue: [ ^nil ].
|
|
||||||
pandoc := fileStream name asFileReference fullName.
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
{ #category : #installation }
|
|
||||||
ExternalApp class >> installSQLite32Bits [
|
|
||||||
"I dowload the SQLite binary for the hosting platform, uncompress it and made it available as with the name
|
|
||||||
NBSQLite is wating for"
|
|
||||||
|
|
||||||
| packageUrl sha1 localPath packageZipName unzippedFolder |
|
|
||||||
|
|
||||||
localPath := FileSystem disk workingDirectory parent / 'bin'.
|
|
||||||
Smalltalk platform name = 'unix'
|
|
||||||
ifTrue: [
|
|
||||||
packageUrl := 'http://sqlite.org/2016/sqlite-tools-linux-x86-3110100.zip'.
|
|
||||||
sha1 := '21a80cefa91d5de50256996fc55990a027c350fd'].
|
|
||||||
Smalltalk platform name = 'Win32'
|
|
||||||
ifTrue: [
|
|
||||||
packageUrl := 'http://sqlite.org/2016/sqlite-dll-win32-x86-3110100.zip'.
|
|
||||||
sha1 := 'cfd6f64ba1fb5de1ccf8321e29764c690c25e0a0'].
|
|
||||||
Smalltalk platform name = 'Mac OS'
|
|
||||||
ifTrue: [
|
|
||||||
packageUrl := 'http://sqlite.org/2016/sqlite-tools-osx-x86-3110100.zip'.
|
|
||||||
sha1 := 'c78b3b92bd37554694d2f73dbecfef1902c15ba7'].
|
|
||||||
self isSQLite32BitsInstalled
|
|
||||||
ifTrue: [ self inform: 'SQLite ya está instalado en el sistema' ]
|
|
||||||
ifFalse: [
|
|
||||||
GrafoscopioBrowser
|
|
||||||
downloadingFrom: packageUrl
|
|
||||||
withMessage: 'Descargando SQLite...'
|
|
||||||
into: localPath asFileReference.
|
|
||||||
packageZipName := (packageUrl splitOn: '/') last.
|
|
||||||
sha1 = (SHA1 new hashMessage: (localPath / packageZipName) asFileReference binaryReadStream contents) hex
|
|
||||||
ifFalse: [ self inform: 'SQLite: Descarga no exitosa.
|
|
||||||
Por favor intente el procedimiento de nuevo o manualmente']
|
|
||||||
ifTrue: [
|
|
||||||
ZipArchive new
|
|
||||||
readFrom: (localPath / packageZipName);
|
|
||||||
extractAllTo: localPath asFileReference.
|
|
||||||
unzippedFolder := packageZipName copyReplaceAll: '.zip' with: ''.
|
|
||||||
(localPath / unzippedFolder ) children do:
|
|
||||||
[:file | file moveTo: (localPath / file basenameWithIndicator)].
|
|
||||||
(localPath / 'sqlite3') copyTo: (localPath / 'libsqlite3.so').
|
|
||||||
(localPath / unzippedFolder ) deleteAll.
|
|
||||||
self inform: 'SQLite instalado existosammente!'
|
|
||||||
].
|
|
||||||
"Cleaning leftovers"
|
|
||||||
(localPath / packageZipName) delete
|
|
||||||
]
|
|
||||||
]
|
|
||||||
|
|
||||||
{ #category : #configuration }
|
|
||||||
ExternalApp class >> installSQLite32BitsUI [
|
|
||||||
"I verify if SQLite for 32 bits is installed in the proper location. If yes, I inform that. If not,
|
|
||||||
I made the installation"
|
|
||||||
| install |
|
|
||||||
install := (UIManager default
|
|
||||||
confirm: '¿Desea instalar el motor de base de datos (SQLite)?'
|
|
||||||
label: 'Instalar base de datos?').
|
|
||||||
install ifTrue: [self installSQLite32Bits]
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
{ #category : #installation }
|
|
||||||
ExternalApp class >> isSQLite32BitsInstalled [
|
|
||||||
"I verify if the SQLite binary for the hosting platform is installed"
|
|
||||||
|
|
||||||
^ (FileSystem disk workingDirectory parent / 'bin' / 'libsqlite3.so') asFileReference exists
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
{ #category : #configuration }
|
|
||||||
ExternalApp class >> pandoc [
|
|
||||||
"I define where the pandoc external app is located"
|
|
||||||
| app |
|
|
||||||
app := ExternalApp new
|
|
||||||
name: 'pandoc';
|
|
||||||
url: 'http://pandoc.org';
|
|
||||||
description: 'Pandoc is a free and open-source software document converter, widely used as a writing tool (especially by scholars) and as a basis for publishing workflows. It was originally created by John MacFarlane, a philosophy professor at the University of California, Berkeley. (from https://en.wikipedia.org/wiki/Pandoc)'.
|
|
||||||
app binaryLocation: '/usr/bin/pandoc' asFileReference.
|
|
||||||
^ app
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
{ #category : #accessing }
|
|
||||||
ExternalApp >> binaryLocation [
|
|
||||||
^ binaryLocation
|
|
||||||
]
|
|
||||||
|
|
||||||
{ #category : #accessing }
|
|
||||||
ExternalApp >> binaryLocation: anObject [
|
|
||||||
binaryLocation := anObject
|
|
||||||
]
|
|
||||||
|
|
||||||
{ #category : #accessing }
|
|
||||||
ExternalApp >> description [
|
|
||||||
^ description
|
|
||||||
]
|
|
||||||
|
|
||||||
{ #category : #accessing }
|
|
||||||
ExternalApp >> description: anObject [
|
|
||||||
description := anObject
|
|
||||||
]
|
|
||||||
|
|
||||||
{ #category : #accessing }
|
|
||||||
ExternalApp >> downloadUrl [
|
|
||||||
^ downloadUrl
|
|
||||||
]
|
|
||||||
|
|
||||||
{ #category : #accessing }
|
|
||||||
ExternalApp >> downloadUrl: anObject [
|
|
||||||
downloadUrl := anObject
|
|
||||||
]
|
|
||||||
|
|
||||||
{ #category : #accessing }
|
|
||||||
ExternalApp >> md5 [
|
|
||||||
^ md5
|
|
||||||
]
|
|
||||||
|
|
||||||
{ #category : #accessing }
|
|
||||||
ExternalApp >> md5: anObject [
|
|
||||||
md5 := anObject
|
|
||||||
]
|
|
||||||
|
|
||||||
{ #category : #accessing }
|
|
||||||
ExternalApp >> name [
|
|
||||||
^ name
|
|
||||||
]
|
|
||||||
|
|
||||||
{ #category : #accessing }
|
|
||||||
ExternalApp >> name: anObject [
|
|
||||||
name := anObject
|
|
||||||
]
|
|
||||||
|
|
||||||
{ #category : #accessing }
|
|
||||||
ExternalApp >> sha1 [
|
|
||||||
^ sha1
|
|
||||||
]
|
|
||||||
|
|
||||||
{ #category : #accessing }
|
|
||||||
ExternalApp >> sha1: anObject [
|
|
||||||
sha1 := anObject
|
|
||||||
]
|
|
||||||
|
|
||||||
{ #category : #accessing }
|
|
||||||
ExternalApp >> url [
|
|
||||||
^ url
|
|
||||||
]
|
|
||||||
|
|
||||||
{ #category : #accessing }
|
|
||||||
ExternalApp >> url: anObject [
|
|
||||||
url := anObject
|
|
||||||
]
|
|
@ -434,7 +434,7 @@ GrafoscopioDockingBar class >> start [
|
|||||||
add: 'Tutorial (Spanish)' target: GrafoscopioDocumentation selector: #openTutorial;
|
add: 'Tutorial (Spanish)' target: GrafoscopioDocumentation selector: #openTutorial;
|
||||||
add: 'Manual' target: GrafoscopioDocumentation selector: #openManual;
|
add: 'Manual' target: GrafoscopioDocumentation selector: #openManual;
|
||||||
add: 'Manual (PDF)' target: GrafoscopioDocumentation selector: #openPDFManual;
|
add: 'Manual (PDF)' target: GrafoscopioDocumentation selector: #openPDFManual;
|
||||||
add: 'Dataviz' target: GrafoscopioDocumentation selector: #openDatavizIntro;
|
add: 'Dataviz' target: (DatavizDocs new) selector: #openIntroNotebook;
|
||||||
add: 'Dev''s notes' target: GrafoscopioDocumentation selector: #openDevNotes;
|
add: 'Dev''s notes' target: GrafoscopioDocumentation selector: #openDevNotes;
|
||||||
add: 'About Grafoscopio' target: self selector: #messageAbout.
|
add: 'About Grafoscopio' target: self selector: #messageAbout.
|
||||||
|
|
||||||
|
67
repository/Grafoscopio/GrafoscopioDocs.class.st
Normal file
67
repository/Grafoscopio/GrafoscopioDocs.class.st
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
"
|
||||||
|
I define the documentation for the Grafoscopio package.
|
||||||
|
"
|
||||||
|
Class {
|
||||||
|
#name : #GrafoscopioDocs,
|
||||||
|
#superclass : #Object,
|
||||||
|
#category : #Grafoscopio
|
||||||
|
}
|
||||||
|
|
||||||
|
{ #category : #initialization }
|
||||||
|
GrafoscopioDocs class >> defineDocumentation [
|
||||||
|
"I model the important documents that belong to the Grafoscopio documentation.
|
||||||
|
When more documents become more mature and usable, I will include them."
|
||||||
|
|
||||||
|
| gfcDocumentation |
|
||||||
|
gfcDocumentation := GrafoscopioDocumentation new.
|
||||||
|
gfcDocumentation
|
||||||
|
name: 'grafoscopio';
|
||||||
|
repository: (FossilRepo new remote: 'http://mutabit.com/repos.fossil/grafoscopio');
|
||||||
|
localPlace: FileLocator workingDirectory asFileReference /'Grafoscopio'.
|
||||||
|
gfcDocumentation documents
|
||||||
|
add: 'Docs/Es/Tutoriales/tutorial.ston';
|
||||||
|
add: 'Docs/En/Books/Manual/manual.ston';
|
||||||
|
add: 'Docs/En/dev-notes.ston';
|
||||||
|
add: 'Docs/En/Books/Manual/manual.pdf'.
|
||||||
|
^ gfcDocumentation
|
||||||
|
]
|
||||||
|
|
||||||
|
{ #category : #initialization }
|
||||||
|
GrafoscopioDocs class >> initialize [
|
||||||
|
self defineDocumentation
|
||||||
|
]
|
||||||
|
|
||||||
|
{ #category : #operation }
|
||||||
|
GrafoscopioDocs class >> openDevNotes [
|
||||||
|
"I'm just an alias to ease the operation. I need to know wich is the index of the notebook
|
||||||
|
I want to open, as defined on defineDocumentation method."
|
||||||
|
| docs |
|
||||||
|
docs := self defineDocumentation.
|
||||||
|
docs openNotebookAt: 3
|
||||||
|
]
|
||||||
|
|
||||||
|
{ #category : #operation }
|
||||||
|
GrafoscopioDocs class >> openManual [
|
||||||
|
"I'm just an alias to ease the operation. I need to know wich is the index of the notebook
|
||||||
|
I want to open, as defined on defineDocumentation method."
|
||||||
|
| docs |
|
||||||
|
docs := self defineDocumentation.
|
||||||
|
docs openNotebookAt: 2
|
||||||
|
]
|
||||||
|
|
||||||
|
{ #category : #operation }
|
||||||
|
GrafoscopioDocs class >> openPDFManual [
|
||||||
|
"I open the documentation in PDF format."
|
||||||
|
| pdfManual docs |
|
||||||
|
docs := self defineDocumentation.
|
||||||
|
pdfManual := docs documents at: 4.
|
||||||
|
WebBrowser openOn: (docs localPlace / pdfManual) fullName.
|
||||||
|
]
|
||||||
|
|
||||||
|
{ #category : #operation }
|
||||||
|
GrafoscopioDocs class >> openTutorial [
|
||||||
|
"I open the proper notebook in the adecuate documentation."
|
||||||
|
| docs |
|
||||||
|
docs := self defineDocumentation.
|
||||||
|
docs openNotebookAt: 1
|
||||||
|
]
|
@ -520,7 +520,7 @@ GrafoscopioNode >> icon: aSymbol [
|
|||||||
|
|
||||||
{ #category : #initialization }
|
{ #category : #initialization }
|
||||||
GrafoscopioNode >> initialize [
|
GrafoscopioNode >> initialize [
|
||||||
"Creates a empty new node"
|
"I create a empty new node"
|
||||||
|
|
||||||
super initialize.
|
super initialize.
|
||||||
self
|
self
|
||||||
|
@ -34,7 +34,6 @@ GrafoscopioNotebook class >> SHA1For: aFile is: aSHA1String [
|
|||||||
|
|
||||||
{ #category : #specs }
|
{ #category : #specs }
|
||||||
GrafoscopioNotebook class >> defaultSpec [
|
GrafoscopioNotebook class >> defaultSpec [
|
||||||
"comment stating purpose of message"
|
|
||||||
|
|
||||||
^ SpecLayout composed
|
^ SpecLayout composed
|
||||||
newColumn: [:tcol|
|
newColumn: [:tcol|
|
||||||
|
Loading…
Reference in New Issue
Block a user