Class { #name : #PubPub, #superclass : #Object, #instVars : [ 'address', 'tableOfContents', 'titles', 'folder', 'currentLanguage' ], #category : #'MiniDocs-Model' } { #category : #accessing } PubPub >> addTableOfContents: anOrderedDictionary [ self tableOfContents at: (self currentLanguage) put: anOrderedDictionary; yourself ] { #category : #accessing } PubPub >> addTitle: aString [ self titles at: (self currentLanguage) put: aString ] { #category : #accessing } PubPub >> address [ ^ address ] { #category : #accessing } PubPub >> address: anUrl [ address := anUrl ] { #category : #accessing } PubPub >> currentLanguage [ ^ currentLanguage ] { #category : #accessing } PubPub >> currentLanguage: twoLettersInISO639_1 [ currentLanguage := twoLettersInISO639_1 ] { #category : #accessing } PubPub >> defaultTitle [ ^ self titles associations first value ] { #category : #accessing } PubPub >> downloadContents [ | workingDirectory | workingDirectory := self folder / self currentLanguage / 'book'. self tableOfContents keysAndValuesDo: [ :name :chapterAddress | |currentFileName| currentFileName := name, '--', chapterAddress, '.md'. (workingDirectory / currentFileName) asFileReference ensureDelete. (workingDirectory / 'markdown') asFileReference ensureDelete. ZnClient new get: self address, 'pub/', chapterAddress, '/download/markdown'; downloadTo: workingDirectory . workingDirectory / 'markdown' renameTo: currentFileName ]. ^ workingDirectory ] { #category : #accessing } PubPub >> folder [ ^ folder ensureCreateDirectory ] { #category : #accessing } PubPub >> folder: localDirectory [ folder := localDirectory ] { #category : #accessing } PubPub >> printOn: aStream [ super printOn: aStream. aStream nextPutAll: '(',self defaultTitle, ' | ', self address, ' )' ] { #category : #accessing } PubPub >> tableOfContents [ tableOfContents ifNil: [^ tableOfContents := Dictionary new]. ^ tableOfContents at: self currentLanguage ] { #category : #accessing } PubPub >> titles [ ^ titles ifNil: [titles := OrderedDictionary new] ]