A new version of File-Kernel was added to project Rio:
http://www.squeaksource.com/Rio/File-Kernel-mtf.22.mcz
==================== Summary ====================
Name: File-Kernel-mtf.22
Author: mtf
Time: 11 April 2009, 5:05:31 pm
UUID: 9619073e-70a6-409c-8b9e-9635ca37d2f2
Ancestors: File-Kernel-mtf.21
refactored home directory to be a method rather than ivar
=============== Diff against File-Kernel-mtf.21 ===============
Item was added:
+ ----- Method: FileUnixExecutive>>primEnvironmentAtSymbol: (in category 'as yet unclassified') -----
+ primEnvironmentAtSymbol: aSymbol
+ "Answer the value of an environment variable in the external OS process."
+
+ <primitive: 'primitiveEnvironmentAtSymbol' module: 'UnixOSProcessPlugin'>
+ ^ nil !
Item was changed:
----- Method: FileLocalExecutive class>>newForUnix (in category 'image start up ') -----
newForUnix
+ ^ FileUnixExecutive new!
- ^ FileLocalExecutive new!
Item was changed:
----- Method: FileExecutive>>homeDirectory (in category 'useful paths') -----
homeDirectory
+ ^ self class dirClass executive: self value: self homePath!
- | |
- ^ self class dirClass executive: self value: home !
Item was added:
+ FileLocalExecutive subclass: #FileUnixExecutive
+ instanceVariableNames: ''
+ classVariableNames: ''
+ poolDictionaries: ''
+ category: 'File-Kernel'!
+
+ !FileUnixExecutive commentStamp: '<historical>' prior: 0!
+ For unix filesystems. I don't do anything beyond just know about the home directory, for now!
Item was added:
+ ----- Method: FileExecutive>>homePath (in category 'useful paths') -----
+ homePath
+
+ ^ home!
Item was added:
+ ----- Method: FileUnixExecutive>>homePath (in category 'as yet unclassified') -----
+ homePath
+ ^ self primEnvironmentAtSymbol: #HOME!
Item was changed:
----- Method: FileExecutive>>fullFor: (in category 'path conversion') -----
fullFor: aFileOrDirectory
"the absolute path of this rio, or if relative
combine with #homeDirectory to obtain the full path"
aFileOrDirectory value isEmpty ifTrue: [ ^ self homeDirectory ].
(self isFull: aFileOrDirectory) ifTrue: [ ^ aFileOrDirectory ].
+ ^ aFileOrDirectory newFrom: (self homePath, self class pathDelimiter, aFileOrDirectory value)!
- ^ aFileOrDirectory newFrom: (home, self class pathDelimiter, aFileOrDirectory value)!
Item was removed:
- ----- Method: FileLocalExecutive>>home (in category 'accessing') -----
- home
-
- ^ self class dirClass executive: self value: home !
A new version of File-Kernel was added to project Rio:
http://www.squeaksource.com/Rio/File-Kernel-mtf.21.mcz
==================== Summary ====================
Name: File-Kernel-mtf.21
Author: mtf
Time: 11 April 2009, 4:32:19 pm
UUID: 7fc61745-2e55-4f5c-9a56-14c62bd6adca
Ancestors: File-Kernel-kph.20
better classified a bunch of methods in FileExecutive
=============== Diff against File-Kernel-kph.20 ===============
Item was changed:
+ ----- Method: FileExecutive>>touch: (in category 'file actions') -----
- ----- Method: FileExecutive>>touch: (in category 'as yet unclassified') -----
touch: aRio
aRio writer use: [:r | ]!
Item was changed:
+ ----- Method: FileExecutive>>root (in category 'useful paths') -----
- ----- Method: FileExecutive>>root (in category 'as yet unclassified') -----
root
^ self class dirClass executive: self value: self rootString!
Item was changed:
+ ----- Method: FileExecutive>>homeDirectory (in category 'useful paths') -----
- ----- Method: FileExecutive>>homeDirectory (in category 'as yet unclassified') -----
homeDirectory
| |
^ self class dirClass executive: self value: home !
Item was changed:
+ ----- Method: FileExecutive>>isDirectory: (in category 'testing') -----
- ----- Method: FileExecutive>>isDirectory: (in category 'as yet unclassified') -----
isDirectory: aRio
^ aRio stat ifNil: [ false ] ifNotNil: [ aRio stat isDirectory ]
!
Item was changed:
FileExecutive subclass: #FileLocalExecutive
instanceVariableNames: 'rootString root'
+ classVariableNames: 'Dynamic Local'
- classVariableNames: 'Local Dynamic'
poolDictionaries: ''
category: 'File-Kernel'!
!FileLocalExecutive commentStamp: 'kph 4/17/2007 19:25' prior: 0!
Introducing the idea that Rio's exist in the context of their 'physical container', we have the RioLocalFileSystem as the primary container which provides the file system interface, also known as the 'executive'.
On unix there is one executive for the whole system. On dos there is one executive per volume. This approach also supports the notion of files within archives and files on remote servers.
On startup, having a formal model of the host filesystem allows us to keep a current and previous instance introducing the possibility for migrating Rio's on startup when the image has been moved. For example C:/ could be replaced with /mnt/hda1 thus attempting to make images properly portable. (experimental idea)
!
Item was changed:
+ ----- Method: FileExecutive>>delete: (in category 'file actions') -----
- ----- Method: FileExecutive>>delete: (in category 'as yet unclassified') -----
delete: aFileOrDir
aFileOrDir isDirectory ifTrue: [ ^ aFileOrDir rmdir ].
self deleteFile: aFileOrDir.!
Item was changed:
+ ----- Method: FileExecutive>>fileClass (in category 'constants') -----
- ----- Method: FileExecutive>>fileClass (in category 'as yet unclassified') -----
fileClass
^ Smalltalk at: #File ifAbsent: [ FileKernel ]!
Item was changed:
+ ----- Method: FileExecutive>>isRemote (in category 'testing') -----
- ----- Method: FileExecutive>>isRemote (in category 'as yet unclassified') -----
isRemote
^ false!
Item was changed:
+ ----- Method: FileExecutive>>setHome: (in category 'useful paths') -----
- ----- Method: FileExecutive>>setHome: (in category 'as yet unclassified') -----
setHome: d
"store home directory as a string, otherwise storeOn: is recursive"
home := d asString!
Item was changed:
+ ----- Method: FileExecutive>>isLocal (in category 'testing') -----
- ----- Method: FileExecutive>>isLocal (in category 'as yet unclassified') -----
isLocal
^ self isRemote not!
Item was changed:
+ ----- Method: FileExecutive>>pathDelimiterChar (in category 'constants') -----
- ----- Method: FileExecutive>>pathDelimiterChar (in category 'case-sensitivity') -----
pathDelimiterChar
^ self class pathDelimiter first!
Item was changed:
+ ----- Method: FileExecutive>>isFile: (in category 'testing') -----
- ----- Method: FileExecutive>>isFile: (in category 'as yet unclassified') -----
isFile: aFileOrDirectory
^ (aFileOrDirectory stat ifNil: [ ^ false ]) isFile
!
Item was changed:
+ ----- Method: FileExecutive>>isFull: (in category 'testing') -----
- ----- Method: FileExecutive>>isFull: (in category 'as yet unclassified') -----
isFull: aFileOrDirectory
^ aFileOrDirectory value beginsWith: self rootString!
Item was changed:
+ ----- Method: FileExecutive>>rootString (in category 'useful paths') -----
- ----- Method: FileExecutive>>rootString (in category 'as yet unclassified') -----
rootString
^ self subclassResponsibility!
Item was changed:
+ ----- Method: FileExecutive>>arePathsCaseSensitive (in category 'testing') -----
- ----- Method: FileExecutive>>arePathsCaseSensitive (in category 'case-sensitivity') -----
arePathsCaseSensitive
^ (self is: $a sameAs: $A) not
!
Item was changed:
+ ----- Method: FileExecutive>>cleanDir: (in category 'as yet unclassified') -----
- ----- Method: FileExecutive>>cleanDir: (in category 'case-sensitivity') -----
cleanDir: aDir
File
ospIfWin:[ :os | os waitForCommand: 'cd ', aDir,' && del \s *.*'. ]
ifUnix: [ :os | os waitForCommand: 'cd ', aDir,'; rm -rf *' ]
ifNone: [ aDir all delete ]
!
Item was changed:
+ ----- Method: FileExecutive>>currentExecutive (in category 'constants') -----
- ----- Method: FileExecutive>>currentExecutive (in category 'case-sensitivity') -----
currentExecutive
"Dont call this, instead call, FileExecutive dynamic currentExecutive"
^ self
!
Item was changed:
+ ----- Method: FileExecutive>>fullFor: (in category 'path conversion') -----
- ----- Method: FileExecutive>>fullFor: (in category 'as yet unclassified') -----
fullFor: aFileOrDirectory
"the absolute path of this rio, or if relative
combine with #homeDirectory to obtain the full path"
aFileOrDirectory value isEmpty ifTrue: [ ^ self homeDirectory ].
(self isFull: aFileOrDirectory) ifTrue: [ ^ aFileOrDirectory ].
^ aFileOrDirectory newFrom: (home, self class pathDelimiter, aFileOrDirectory value)!
Item was removed:
- ----- Method: FileExecutive>>MCPasswordManager (in category 'case-sensitivity') -----
- MCPasswordManager
-
- ^ MCPasswordManager!
A new version of Packages-SqueakMap was added to project Packages:
http://www.squeaksource.com/Packages/Packages-SqueakMap-kph.20.mcz
==================== Summary ====================
Name: Packages-SqueakMap-kph.20
Author: kph
Time: 10 April 2009, 8:15:21 pm
UUID: 51531296-260c-11de-85e1-000a95edb42a
Ancestors: Packages-SqueakMap-kph.19
auto regenerated:
PackagesSqueakMapData>>TwitterClient:{T} (changed)
PackagesSqueakMapData>>ShoutTraits:{S} (source same but rev changed)
=============== Diff against Packages-SqueakMap-kph.19 ===============
Item was changed:
----- Method: PackagesSqueakMapData>>TwitterClient: (in category 'T') -----
TwitterClient: aVersion
self name: 'Twitter Client'.
info summary: 'HTTP-based client toTwitter API'.
info author: 'Carlos Crosetti'.
info owner: 'Carlos Crosetti'.
info created: '23 March 2009 7:12:42 pm'.
+ info updated: '10 April 2009 4:59:11 pm'.
- info updated: '5 April 2009 7:09:26 pm'.
info description:
'Twitter REST API based client with UI.
+ Requires SGrid, VB-Regex, PlotMorph and Soup XML parser.
+ Full runnable image is found at
+ http://code.google.com/p/twitter-client/'.
- Requires Sgrid, VB-Regex, PlotMorph and Soup XML parser.'.
info versions: {
}.
!
Item was changed:
----- Method: PackagesSqueakMapData>>ShoutTraits: (in category 'S') -----
ShoutTraits: aVersion
self name: 'ShoutTraits'.
self version: aVersion.
info summary: 'enables Shout with Traits Beta1 browser'.
info author: 'tween'.
info owner: 'Andy Tween'.
info created: '15 May 2004 3:18:45 pm'.
info updated: '15 May 2004 3:18:45 pm'.
info description:
'Shout.2 and Traits Beta1 must be installed first.
'.
info versions: {
{
#version -> 'Alpha.1'.
#created -> '15 May 2004 3:21:26 pm'.
#updated -> '14 July 2004 3:45:31 pm'.
#categories -> #('SqueakL + MIT' 'Development tools' 'Squeak3.7' 'Alpha' 'Not backwards compatible').
#id -> 'e726ef43-6b3a-49c1-adfe-9a56133a7470'.
#publisher -> 'Andy Tween'.
#url ->'http://map.squeak.org/accountbyid/46dcf6af-067d-43e3-9fc9-d7010e067153/file…'.
}.
}.
!
A new version of Packages-SqueakMap was added to project Packages:
http://www.squeaksource.com/Packages/Packages-SqueakMap-kph.18.mcz
==================== Summary ====================
Name: Packages-SqueakMap-kph.18
Author: kph
Time: 6 April 2009, 8:14:51 pm
UUID: 95e179b6-22e7-11de-85e1-000a95edb42a
Ancestors: Packages-SqueakMap-kph.17
auto regenerated:
PackagesSqueakMapData>>Tsunami:{T} (source same but rev changed)
=============== Diff against Packages-SqueakMap-kph.17 ===============
Item was changed:
----- Method: PackagesSqueakMapData>>Tsunami: (in category 'T') -----
Tsunami: aVersion
self name: 'Tsunami'.
self version: aVersion.
info summary: 'A small framework allowing business object collaborations and instance variables to be declared declaratively Ruby On Rails style.'.
info author: 'Ramon Leon'.
info owner: 'Ramon Leon'.
info created: '6 July 2006 3:34:25 pm'.
info updated: '17 July 2006 9:20:18 pm'.
info description:
'A small framework allowing business object collaborations and instance variables to be declared declaratively Ruby On Rails style, resulting in a domain model kind of matching the style of the Streamlined Object Modeling book. Relationships between objects are reified as objects themselves and doesNotUnderstand: is used to intercept messages and answer them dynamically. Unit tests and Mocks are included as samples. Package requires at least PackageInfo-Base-avi.20 to avoid getting an error on the Monticello post install script.'.
info versions: {
{
#version -> '22'.
#created -> '15 September 2006 9:35:51 pm'.
#updated -> '27 July 2008 4:17:50 pm'.
#categories -> #('Stable' 'MIT' 'Squeak3.8' 'Only extensions, no changes' 'Squeak3.9').
#id -> '1351b0b1-924c-4326-9c82-7c530699f195'.
#publisher -> 'Ramon Leon'.
#url ->'http://www.squeaksource.com/Tsunami/Tsunami-rjl.22.mcz'.
}.
{
#version -> '12'.
#created -> '24 July 2006 10:01:09 pm'.
#updated -> '15 September 2006 9:40:23 pm'.
#categories -> #('Stable' 'MIT' 'Squeak3.8' 'Only extensions, no changes').
#id -> '4a53690d-29e3-4216-9112-2d630a82f101'.
#publisher -> 'Ramon Leon'.
#url ->'http://www.squeaksource.com/Tsunami/Tsunami-rjl.12.mcz'.
}.
{
#version -> '11'.
#created -> '17 July 2006 4:39:59 pm'.
#updated -> '17 July 2006 8:45:16 pm'.
#categories -> #('Stable' 'MIT' 'Squeak3.8' 'Only extensions, no changes').
#id -> '43e4573f-e68b-4643-8fdc-7ab3cbba2f9b'.
#publisher -> 'Ramon Leon'.
#url ->'http://www.squeaksource.com/Tsunami/Tsunami-rjl.11.mcz'.
}.
{
#version -> '9'.
#created -> '6 July 2006 10:49:06 pm'.
#updated -> '15 September 2006 9:40:58 pm'.
#categories -> #('Stable' 'MIT' 'Squeak3.8' 'Only extensions, no changes').
#id -> 'c502f583-ada5-48c0-8d83-9fab7b9293ac'.
#publisher -> 'Ramon Leon'.
#url ->'http://www.squeaksource.com/Tsunami/Tsunami-rjl.9.mcz'.
}.
}.
!