CypressRepository.st
author Jan Vrany <jan.vrany@labware.com>
Wed, 08 Jul 2020 11:26:45 +0100
changeset 29 443911ff729a
parent 20 cdf3ee8ceeaa
permissions -rw-r--r--
Move some extensions to stx:libcompat
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/cypress' }"
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
CypressModel subclass:#CypressRepository
15
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
     4
	instanceVariableNames:'directory readerClass writerClass'
13
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
	classVariableNames:''
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	poolDictionaries:''
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	category:'Cypress-New-Model'
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
!
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!CypressRepository class methodsFor:'documentation'!
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
documentation
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
"
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
    An abstraction of Cypress repository. Use it to read & write packages
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
    in Cypress format.
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
    Usage:
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
      creating repository:
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
        crepo := CypressRepository on:'~/Projects/SmalltalkX/repositories/git/cypress/implementations/smalltalkx/packages'.
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
      writing package:
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
        crepo write: #'stx:goodies/cypress'
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
    [author:]
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
        Jan Vrany <jan.vrany@fit.cvut.cz>
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
    [instance variables:]
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
    [class variables:]
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
    [see also:]
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
"
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
! !
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
!CypressRepository class methodsFor:'instance creation'!
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
on: directory
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
    ^self new directory: directory
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
    "Created: / 13-09-2012 / 14:49:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
! !
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
18
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    50
!CypressRepository class methodsFor:'private'!
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    51
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    52
packageDirectoryForPackageName: pkgName in: repoDir
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    53
    | pkgDir |
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    54
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    55
    pkgDir := repoDir / pkgName.
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    56
    pkgDir exists ifTrue:[ ^ pkgDir ].
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    57
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    58
    "/Try add .package"
19
e089dbf76ed6 - CypressRepository
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18
diff changeset
    59
    pkgDir := pkgDir withSuffix: 'package'.
18
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    60
    pkgDir exists ifTrue:[ ^ pkgDir ].
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    61
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    62
    "/Hmm...maybe stx package name
19
e089dbf76ed6 - CypressRepository
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18
diff changeset
    63
    pkgDir := repoDir / ((pkgName asString copy replaceAll:$: with:$_; replaceAll:$/ with:$_) , '.package').
18
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    64
    pkgDir exists ifTrue:[ ^ pkgDir ].
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    65
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    66
    "/ No luck, return nil
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    67
    ^nil
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    68
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    69
    "Created: / 18-09-2012 / 13:33:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    70
! !
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    71
13
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
!CypressRepository methodsFor:'accessing'!
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
directory
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
    "Returns the root directory of the repository"
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
    ^ directory
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
    "Modified (comment): / 13-09-2012 / 11:55:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
!
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
directory:aStringOrFilename
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
    "Sets the root directory of a Cypress Repository"
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
    directory := aStringOrFilename asFilename.
15
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
    86
    self initialize
13
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
15
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
    88
    "Modified: / 17-09-2012 / 22:29:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
17
d387df3d4e46 - CypressAbstractReaderWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
    89
!
d387df3d4e46 - CypressAbstractReaderWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
    90
d387df3d4e46 - CypressAbstractReaderWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
    91
readerClass
d387df3d4e46 - CypressAbstractReaderWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
    92
    ^ readerClass
d387df3d4e46 - CypressAbstractReaderWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
    93
!
d387df3d4e46 - CypressAbstractReaderWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
    94
d387df3d4e46 - CypressAbstractReaderWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
    95
readerClass:something
d387df3d4e46 - CypressAbstractReaderWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
    96
    readerClass := something.
d387df3d4e46 - CypressAbstractReaderWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
    97
!
d387df3d4e46 - CypressAbstractReaderWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
    98
d387df3d4e46 - CypressAbstractReaderWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
    99
writerClass
d387df3d4e46 - CypressAbstractReaderWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
   100
    ^ writerClass
d387df3d4e46 - CypressAbstractReaderWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
   101
!
d387df3d4e46 - CypressAbstractReaderWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
   102
d387df3d4e46 - CypressAbstractReaderWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
   103
writerClass:something
d387df3d4e46 - CypressAbstractReaderWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
   104
    writerClass := something.
d387df3d4e46 - CypressAbstractReaderWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
   105
! !
d387df3d4e46 - CypressAbstractReaderWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
   106
d387df3d4e46 - CypressAbstractReaderWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
   107
!CypressRepository methodsFor:'converting'!
d387df3d4e46 - CypressAbstractReaderWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
   108
d387df3d4e46 - CypressAbstractReaderWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
   109
asChange
d387df3d4e46 - CypressAbstractReaderWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
   110
    "superclass CypressModel says that I am responsible to implement this method"
d387df3d4e46 - CypressAbstractReaderWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
   111
d387df3d4e46 - CypressAbstractReaderWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
   112
    ^ self shouldNotImplement
d387df3d4e46 - CypressAbstractReaderWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
   113
d387df3d4e46 - CypressAbstractReaderWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
   114
    "Modified: / 18-09-2012 / 10:18:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
14
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
   115
! !
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
   116
15
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
   117
!CypressRepository methodsFor:'initialization'!
13
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
15
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
   119
initialize
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
   120
    | props |
14
d5b81c30785e - CypressWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13
diff changeset
   121
15
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
   122
    writerClass := CypressWriter.
18
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   123
    readerClass := nil.
15
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
   124
    directory isNil ifTrue:[ ^ self ].
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
   125
    directory exists ifFalse:[ ^ self ].
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
   126
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
   127
    ( props := directory / 'properties.json' ) exists ifTrue:[
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
   128
        readerClass := CypressFileTreeReader.
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
   129
        properties := CypressJSONReader parse: props.
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
   130
    ].
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
   131
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
   132
    ( props := directory / 'properties.ston' ) exists ifTrue:[
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
   133
        readerClass := CypressReader.
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
   134
        properties := CypressJSONReader parse: props.
13
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
    ].
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
15
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
   137
    "Created: / 17-09-2012 / 22:09:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
   138
! !
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
   139
17
d387df3d4e46 - CypressAbstractReaderWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
   140
!CypressRepository methodsFor:'private'!
d387df3d4e46 - CypressAbstractReaderWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
   141
d387df3d4e46 - CypressAbstractReaderWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
   142
changesInto:aChangeSet
d387df3d4e46 - CypressAbstractReaderWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
   143
    "superclass CypressModel says that I am responsible to implement this method"
d387df3d4e46 - CypressAbstractReaderWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
   144
d387df3d4e46 - CypressAbstractReaderWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
   145
    ^ self shouldNotImplement
d387df3d4e46 - CypressAbstractReaderWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
   146
d387df3d4e46 - CypressAbstractReaderWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
   147
    "Modified: / 18-09-2012 / 10:58:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
18
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   148
!
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   149
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   150
writer
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   151
    ^writerClass onRepository: self
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   152
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   153
    "Created: / 17-09-2012 / 22:22:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   154
! !
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   155
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   156
!CypressRepository methodsFor:'reading'!
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   157
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   158
read: packageName
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   159
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   160
    ^self read: packageName as: nil
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   161
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   162
    "Created: / 18-09-2012 / 09:34:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   163
!
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   164
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   165
read: packageName as: packageId
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   166
    | readerCls |
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   167
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   168
    readerCls := readerClass.
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   169
    readerCls isNil ifTrue:[
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   170
        | pdir |
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   171
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   172
        pdir := self class packageDirectoryForPackageName: packageName in: directory.
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   173
        pdir notNil ifTrue:[
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   174
            readerCls := (pdir / 'properties.json') exists 
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   175
                    ifTrue:[CypressFileTreeReader]
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   176
                    ifFalse:[CypressReader].
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   177
        ] ifFalse:[
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   178
            self error:'No such package found'.
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   179
        ].
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   180
    ].
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   181
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   182
    ^(readerCls onRepository: self) readPackage: packageName as: packageId from: directory
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   183
fb5dc5aae98c - CypressFileTreeReader
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   184
    "Created: / 18-09-2012 / 13:15:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
17
d387df3d4e46 - CypressAbstractReaderWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
   185
! !
d387df3d4e46 - CypressAbstractReaderWriter
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 15
diff changeset
   186
15
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
   187
!CypressRepository methodsFor:'writing'!
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
   188
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
   189
write: packageIdOrProjectDefinition
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
   190
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
   191
    self writer writePackage: packageIdOrProjectDefinition asCypressPackage to: directory
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
   192
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
   193
    "Created: / 17-09-2012 / 22:12:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
   194
!
13
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   195
15
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
   196
write: packageIdOrProjectDefinition as: nm
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
   197
20
cdf3ee8ceeaa - fixes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 19
diff changeset
   198
    self writer writePackage: packageIdOrProjectDefinition asCypressPackage as: nm to: directory
15
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
   199
31a33727c629 - Getting rid of old Cypress implementation.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14
diff changeset
   200
    "Created: / 17-09-2012 / 22:23:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
13
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   201
! !
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   202
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   203
!CypressRepository class methodsFor:'documentation'!
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   204
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   205
version_SVN
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   206
    ^ '$Id::                                                                                                                        $'
f90704544ca0 More refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   207
! !