MCSqueaksourceRepository.st
author Claus Gittinger <cg@exept.de>
Sun, 26 Aug 2018 14:44:04 +0200
changeset 1068 d31a825dfb42
parent 1058 20534d93f47d
permissions -rw-r--r--
#OTHER by cg update
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1058
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello' }"
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"{ NameSpace: Smalltalk }"
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
MCHttpRepository subclass:#MCSqueaksourceRepository
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	instanceVariableNames:''
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
	category:'SCM-Monticello-RemoteRepositories'
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
MCSqueaksourceRepository comment:'I am a specialized MCHttpRepository for http://squeaksource.com.
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
I optimize checks for existing files by doing a head request instead of reloading the whole file list first.'
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
!
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
!MCSqueaksourceRepository class methodsFor:'accessing'!
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
description
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	^ 'squeaksource.com'
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
! !
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
!MCSqueaksourceRepository class methodsFor:'creation template'!
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
baseURL
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
	^ 'http://squeaksource.com/'
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
! !
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
!MCSqueaksourceRepository class methodsFor:'testing'!
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
isResponsibleFor: aUrl
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
	^ aUrl includesSubstring: 'squeaksource.com/'
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
! !
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
!MCSqueaksourceRepository methodsFor:'*Komitter-Models'!
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
koRemote
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
	^ KomitSqueakSourceRemote new
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
		remote: self;
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
		yourself
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
! !
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
!MCSqueaksourceRepository methodsFor:'interface'!
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
includesFileNamed: aString
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
	
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
	"avoid the slower default method and simply do a head request "
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
	self httpClient
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
		numberOfRetries: 0;
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
		ifFail: [ :exception | 
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
			((exception isKindOf: ZnHttpUnsuccessful) and: [ exception response isNotFound ])
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
				ifTrue: [ ^ false ].
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
			exception pass];
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
		head: (self urlForFileNamed: aString).
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
		
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
	^ true
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
!
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
includesVersionNamed: aString
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
	"directly do a filename check since squeaksource only stores mcz"
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
	^ self includesFileNamed: aString, '.mcz'
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
! !
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
!MCSqueaksourceRepository class methodsFor:'documentation'!
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
version
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
    ^ '$Header$'
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
!
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
version_CVS
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
    ^ '$Header$'
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
! !
20534d93f47d initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74