41 lines
1.1 KiB
Smalltalk
41 lines
1.1 KiB
Smalltalk
"
|
|
I model common operations made with several markup files.
|
|
"
|
|
Class {
|
|
#name : #MarkupFile,
|
|
#superclass : #Object,
|
|
#instVars : [
|
|
'file'
|
|
],
|
|
#category : #'MiniDocs-Core'
|
|
}
|
|
|
|
{ #category : #persistence }
|
|
MarkupFile class >> exportAsFileOn: aFileReferenceOrFileName containing: anObject [
|
|
| file preprocessed |
|
|
file := aFileReferenceOrFileName asFileReference.
|
|
file ensureDelete.
|
|
file exists ifFalse: [ file ensureCreateFile ].
|
|
(#('String' 'ByteString' 'WideString') includes: anObject className )
|
|
ifTrue: [ preprocessed := anObject ]
|
|
ifFalse: [preprocessed := STON toStringPretty: anObject ].
|
|
file writeStreamDo: [ :stream |
|
|
stream nextPutAll: preprocessed ].
|
|
self inform: 'Exported as: ', String cr, file fullName.
|
|
^ file
|
|
]
|
|
|
|
{ #category : #accessing }
|
|
MarkupFile class >> installTemplate: anUrl into: aFolder [
|
|
|
|
| fileName |
|
|
fileName := anUrl asUrl segments last.
|
|
(aFolder / fileName) exists
|
|
ifTrue: [ (aFolder / fileName) ensureDeleteFile ]
|
|
ifFalse: [ aFolder ensureCreateDirectory ].
|
|
ZnClient new
|
|
url: anUrl;
|
|
downloadTo: aFolder.
|
|
^ aFolder
|
|
]
|