'From Squeak3.11alpha of 13 February 2010 [latest update: #9499] on 15 March 2010 at 8:32:30 am'! !LRUCache methodsFor: 'printing' stamp: 'laza 3/9/2010 21:33'! printOn: aStream "Append to the argument, aStream, a sequence of characters that identifies the receiver." aStream nextPutAll: self class name; nextPutAll: ' size:'; nextPutAll: size asString; nextPutAll: ', calls:'; nextPutAll: calls asString; nextPutAll: ', hits:'; nextPutAll: hits asString; nextPutAll: ', ratio:'; nextPutAll: ((hits isNumber and: [calls isNumber and: [calls ~= 0]]) ifTrue: [hits / calls] ifFalse: [0]) asFloat asString! ! !SmalltalkImage methodsFor: 'snapshot and quit' stamp: 'ar 3/9/2010 17:00'! getFileNameFromUser "Ask the user for a new image name" ^self getFileNameFromUserSuggesting: (FileDirectory localNameFor: self imageName)! ! !SmalltalkImage methodsFor: 'snapshot and quit' stamp: 'ar 3/9/2010 16:59'! getFileNameFromUserSuggesting: aName "Ask the user for a new image name" | newName | newName := UIManager default request: 'New File Name?' translated initialAnswer: aName. newName isEmpty ifTrue: [^nil]. ((FileDirectory default fileOrDirectoryExists: (self fullNameForImageNamed: newName)) or: [FileDirectory default fileOrDirectoryExists: (self fullNameForChangesNamed: newName)]) ifTrue: [ (self confirm: ('{1} already exists. Overwrite?' translated format: {newName})) ifFalse: [^nil]]. ^newName ! ! !SmalltalkImage methodsFor: 'snapshot and quit' stamp: 'ar 3/9/2010 17:00'! saveAsSuggesting: aName "Put up the 'saveAs' prompt, obtain a name, and save the image under that new name." ^self saveAs: (self getFileNameFromUserSuggesting: aName)! ! !SmalltalkImage methodsFor: 'sources, changes log' stamp: 'ar 3/9/2010 16:58'! saveAs "Put up the 'saveAs' prompt, obtain a name, and save the image under that new name." ^self saveAs: self getFileNameFromUser. ! ! !SmalltalkImage methodsFor: 'sources, changes log' stamp: 'ar 3/9/2010 16:58'! saveAs: newName "Save the image under that new name." newName ifNil:[^ self]. (SourceFiles at: 2) ifNotNil: [self closeSourceFiles; "so copying the changes file will always work" saveChangesInFileNamed: (self fullNameForChangesNamed: newName)]. self saveImageInFileNamed: (self fullNameForImageNamed: newName)! ! !SmalltalkImage methodsFor: 'accessing' stamp: 'ar 3/9/2010 16:42'! at: aKey ifAbsentPut: aBlock "Return the global at the given key. If key is not included in the receiver store the result of evaluating aBlock as new value." ^globals at: aKey ifAbsentPut: aBlock! ! !SystemDictionary methodsFor: 'accessing' stamp: 'ar 3/9/2010 17:07'! bindingOf: varName "SystemDictionary includes Symbols only" ^super bindingOf: varName asSymbol! ! !SystemVersion methodsFor: 'accessing' stamp: 'jcg 11/2/2004 10:03'! majorMinorVersion "Return the major/minor version number of the form X.Y, without any 'alpha' or 'beta' or other suffix." "(SystemVersion new version: 'Squeak3.7alpha') majorMinorVersion" " --> 'Squeak3.7' " "SystemVersion current majorMinorVersion" | char stream | stream := ReadStream on: version, 'x'. stream upTo: $.. char := stream next. char ifNil: [^ version]. "eg: 'Jasmine-rc1' has no $. in it." [char isDigit] whileTrue: [char := stream next]. ^ version copyFrom: 1 to: stream position - 1 ! !