" I model a fossil repository. For details about fossil see: http://fossil-scm.org/ " Class { #name : #FossilRepo, #superclass : #Object, #instVars : [ 'url' ], #category : #Fossil } { #category : #querying } FossilRepo >> checkinsFor: relativeFilePath [ "I get all histotical checkins information for a full file name, wich includes relative path in the repository (i.e: 'Doc/Es/Tutoriales/tutorial.ston' or 'index.html's)" (self jsonDataFor: relativeFilePath) = self ifTrue: [ self inform: 'WARNING! Key not found, verify the file name you are looking in this repository'. ^ self ]. ^ (((self jsonDataFor: relativeFilePath) at: 'payload') at: 'checkins') ] { #category : #querying } FossilRepo >> jsonDataFor: aFileName [ | answer | answer := NeoJSONReader fromString: (self jsonStringFor: aFileName). (answer keys includes: 'resultText') ifTrue: [ (answer at: 'resultText') = 'File entry not found.' ifTrue: [ self inform: 'WARNING! ', (answer at: 'resultText'), ' Verify the file path you are entering'. ^ self] ]. ^ answer ] { #category : #querying } FossilRepo >> jsonStringFor: aFileName [ | queryForJSONData | queryForJSONData := self url addPathSegments: #('json' 'finfo'). queryForJSONData queryAt: 'name' put: aFileName. ^ (ZnEasy get: queryForJSONData) contents. ] { #category : #querying } FossilRepo >> lastHashNumberFor: aFileName [ "I'm useful to see if local versions of files are updated to the last versions of the online repository" ^ (self checkinsFor: aFileName) first at: 'uuid' ] { #category : #accessing } FossilRepo >> url [ ^ url ] { #category : #accessing } FossilRepo >> url: aString [ url := aString asUrl ]