SVN__RepositoryConfiguration.st
author Claus Gittinger <cg@exept.de>
Mon, 12 Apr 2010 13:42:32 +0200
changeset 568 073adf9e4ccc
parent 467 c24d39535de8
child 718 6da6d4d1ffe6
permissions -rw-r--r--
changed: #url:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
467
c24d39535de8 *** empty log message ***
fm
parents: 361
diff changeset
     1
"{ Package: 'stx:libsvn' }"
69
7b1145d9db00 initial checkin
fm
parents:
diff changeset
     2
7b1145d9db00 initial checkin
fm
parents:
diff changeset
     3
"{ NameSpace: SVN }"
7b1145d9db00 initial checkin
fm
parents:
diff changeset
     4
7b1145d9db00 initial checkin
fm
parents:
diff changeset
     5
Object subclass:#RepositoryConfiguration
7b1145d9db00 initial checkin
fm
parents:
diff changeset
     6
	instanceVariableNames:'package url'
7b1145d9db00 initial checkin
fm
parents:
diff changeset
     7
	classVariableNames:''
7b1145d9db00 initial checkin
fm
parents:
diff changeset
     8
	poolDictionaries:''
7b1145d9db00 initial checkin
fm
parents:
diff changeset
     9
	category:'SVN-Core'
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    10
!
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    11
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    12
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    13
!RepositoryConfiguration class methodsFor:'instance creation'!
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    14
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    15
package: package url: url
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    16
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    17
    ^self new
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    18
        package: package;
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    19
        url: url
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    20
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    21
    "Created: / 19-08-2009 / 12:17:39 / Jan Vrany <vranyj1@fel.cvut.cz>"
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    22
! !
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    23
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    24
!RepositoryConfiguration methodsFor:'accessing'!
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    25
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    26
package
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    27
    ^ package
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    28
!
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    29
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    30
package:aString
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    31
    package := aString.
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    32
!
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    33
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    34
packagePattern: aString
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    35
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    36
    <resource: #obsolete>
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    37
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    38
    self package: aString
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    39
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    40
    "Created: / 16-08-2009 / 16:59:27 / Jan Vrany <vranyj1@fel.cvut.cz>"
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    41
!
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    42
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    43
url
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    44
    ^ url
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    45
!
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    46
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    47
url: aStringOrUrl 
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    48
    | givenUrl |
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    49
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    50
    givenUrl := aStringOrUrl asURL.
568
073adf9e4ccc changed: #url:
Claus Gittinger <cg@exept.de>
parents: 467
diff changeset
    51
    givenUrl isValidSvnRepositoryUrl ifTrue:[
073adf9e4ccc changed: #url:
Claus Gittinger <cg@exept.de>
parents: 467
diff changeset
    52
        url := givenUrl.
073adf9e4ccc changed: #url:
Claus Gittinger <cg@exept.de>
parents: 467
diff changeset
    53
    ] ifFalse: [         
073adf9e4ccc changed: #url:
Claus Gittinger <cg@exept.de>
parents: 467
diff changeset
    54
        self error: 'Invalid repository URL' mayProceed:true.
073adf9e4ccc changed: #url:
Claus Gittinger <cg@exept.de>
parents: 467
diff changeset
    55
        url := nil.
073adf9e4ccc changed: #url:
Claus Gittinger <cg@exept.de>
parents: 467
diff changeset
    56
    ].
69
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    57
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    58
    "Modified: / 16-08-2009 / 16:42:20 / Jan Vrany <vranyj1@fel.cvut.cz>"
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    59
!
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    60
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    61
urlForPackage: pkg
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    62
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    63
    | packageAsPath |
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    64
    packageAsPath := pkg asString copy replaceAll:$: with:$/.
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    65
    ^url asString expandPlaceholdersWith:
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    66
        (Dictionary new
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    67
            at: 'p' put: packageAsPath;
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    68
            yourself)
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    69
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    70
    "Created: / 16-08-2009 / 16:56:22 / Jan Vrany <vranyj1@fel.cvut.cz>"
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    71
!
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    72
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    73
urlPattern: aString
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    74
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    75
    <resource: #obsolete>
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    76
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    77
    self url: aString
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    78
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    79
    "Created: / 16-08-2009 / 16:59:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    80
!
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    81
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    82
urlString
231
3dddc8903b84 changed: #urlString
fm
parents: 195
diff changeset
    83
    url isNil ifTrue: [^''].
69
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    84
    ^ url urlPrintString
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    85
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    86
    "Created: / 16-08-2009 / 17:28:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    87
! !
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    88
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    89
!RepositoryConfiguration methodsFor:'comparing'!
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    90
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    91
= anotherConf
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    92
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    93
    ^self class == anotherConf class
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    94
        and:[package = anotherConf package
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    95
            and:[url = anotherConf url]].
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    96
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    97
    "Created: / 25-05-2009 / 18:54:47 / Jan Vrany <vranyj1@fel.cvut.cz>"
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    98
    "Modified: / 16-08-2009 / 17:24:37 / Jan Vrany <vranyj1@fel.cvut.cz>"
7b1145d9db00 initial checkin
fm
parents:
diff changeset
    99
!
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   100
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   101
hash
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   102
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   103
    ^package hash bitXor:
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   104
        url hash
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   105
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   106
    "Created: / 25-05-2009 / 18:53:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   107
! !
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   108
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   109
!RepositoryConfiguration methodsFor:'converting'!
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   110
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   111
literalArrayEncoding
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   112
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   113
    ^Array
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   114
        with: self class name
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   115
        with: #package:
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   116
        with: package literalArrayEncoding
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   117
        with: #url:
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   118
        with: url asString.
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   119
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   120
    "
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   121
        (SVN::RepositoryConfiguration package:'stx:goodies/libsvn' url: 'http://smalltalk.felk.cvut.cz/svn/stx/goodies/libsvn')
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   122
            literalArrayEncoding
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   123
            decodeAsLiteralArray
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   124
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   125
    "
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   126
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   127
    "Created: / 19-08-2009 / 21:56:21 / Jan Vrany <vranyj1@fel.cvut.cz>"
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   128
! !
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   129
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   130
!RepositoryConfiguration methodsFor:'printing & storing'!
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   131
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   132
printOn:aStream
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   133
    "append a printed representation if the receiver to the argument, aStream"
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   134
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   135
    self class storeOn:aStream.
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   136
    aStream space.
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   137
    aStream nextPutAll:'package: '.
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   138
    package storeOn:aStream.
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   139
    aStream space.
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   140
    aStream nextPutAll:'url: '.
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   141
    url asString storeOn:aStream.
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   142
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   143
    "Modified: / 19-08-2009 / 12:18:04 / Jan Vrany <vranyj1@fel.cvut.cz>"
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   144
! !
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   145
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   146
!RepositoryConfiguration methodsFor:'queries'!
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   147
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   148
matchesPackage: pkg
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   149
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   150
    ^pkg 
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   151
        ifNil:[false]
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   152
        ifNotNil:[pkg matches: package]
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   153
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   154
    "Created: / 26-05-2008 / 09:36:27 / Jan Vrany <vranyj1@fel.cvut.cz>"
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   155
    "Modified: / 16-08-2009 / 16:29:21 / Jan Vrany <vranyj1@fel.cvut.cz>"
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   156
! !
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   157
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   158
!RepositoryConfiguration class methodsFor:'documentation'!
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   159
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   160
version
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   161
    ^ '$Header$'
195
a84095525ed2 changed: #version_SVN
fm
parents: 69
diff changeset
   162
!
a84095525ed2 changed: #version_SVN
fm
parents: 69
diff changeset
   163
a84095525ed2 changed: #version_SVN
fm
parents: 69
diff changeset
   164
version_CVS
a84095525ed2 changed: #version_SVN
fm
parents: 69
diff changeset
   165
    ^ '$Header$'
a84095525ed2 changed: #version_SVN
fm
parents: 69
diff changeset
   166
!
a84095525ed2 changed: #version_SVN
fm
parents: 69
diff changeset
   167
a84095525ed2 changed: #version_SVN
fm
parents: 69
diff changeset
   168
version_SVN
361
aea6288f6543 update #version_SVN with § as keyword expansion character
fm
parents: 231
diff changeset
   169
    ^'§Id: SVN__RepositoryConfiguration.st 111 2009-08-19 20:07:10Z vranyj1 §'
69
7b1145d9db00 initial checkin
fm
parents:
diff changeset
   170
! !