Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
92 changes: 59 additions & 33 deletions rowan/components/scripts/defineGlobalsPostLoad.st
Original file line number Diff line number Diff line change
@@ -1,39 +1,65 @@
| symbolDictionary gregorianCalendar |

symbolDictionary := Rowan image
symbolDictNamed: 'Chalten'
ifAbsent: [Error signal: 'Chalten symbol dictionary missing' ].
| symbolDictionary gregorianCalendar assignmentCommand |
symbolDictionary := Rowan image
symbolDictNamed: 'Chalten'
ifAbsent: [ Error signal: 'Chalten symbol dictionary missing' ].
assignmentCommand := [ :key :contentBlock |
symbolDictionary
at: key
ifPresent: [ :current |
current ifNil: [ symbolDictionary at: key put: contentBlock value ] ]
ifAbsentPut: contentBlock
].

"Global variables definition"
"Global variables definition"

symbolDictionary at: #ChaltenEnvironment put: ChaltenEnvironmentBehavior initializeEnvironment new.
symbolDictionary at: #TimeUnits put: (TimeUnitsGlobals initializeUniqueInstance; new).
TimeOfDay initializeTimesOfDay. "Cannot be invoked from TimeOfDay class>>initialize because depends on TimeUnits global"
CalendarDefinition allSubclassesDo: [ :each | each subclasses ifEmpty: [ each initializeCalendar ] ].
symbolDictionary at: #TheBeginningOfTime put: (TheBeginningOfTimeClass initializeUniqueInstance; new).
symbolDictionary at: #TheEndOfTime put: (TheEndOfTimeClass initializeUniqueInstance; new).
symbolDictionary at: #TimeZones put: (TimeZonesGlobals initializeUniqueInstance; new).
assignmentCommand
value: #ChaltenEnvironment
value: [ ChaltenEnvironmentBehavior initializeEnvironment new ].
assignmentCommand value: #TimeUnits value: [
TimeUnitsGlobals
initializeUniqueInstance;
new
].
TimeOfDay initializeTimesOfDay. "Cannot be invoked from TimeOfDay class>>initialize because depends on TimeUnits global"
CalendarDefinition allSubclassesDo: [ :each |
each subclasses ifEmpty: [ each initializeCalendar ] ].
assignmentCommand value: #TheBeginningOfTime value: [
TheBeginningOfTimeClass
initializeUniqueInstance;
new
].
assignmentCommand value: #TheEndOfTime value: [
TheEndOfTimeClass
initializeUniqueInstance;
new
].
assignmentCommand value: #TimeZones value: [
TimeZonesGlobals
initializeUniqueInstance;
new
].

"Gregorian calendar specific globals"
"Gregorian calendar specific globals"

gregorianCalendar := ChaltenEnvironment calendarNamed: #GregorianCalendar.
symbolDictionary at: #Monday put: gregorianCalendar monday.
symbolDictionary at: #Tuesday put: gregorianCalendar tuesday.
symbolDictionary at: #Wednesday put: gregorianCalendar wednesday.
symbolDictionary at: #Thursday put: gregorianCalendar thursday.
symbolDictionary at: #Friday put: gregorianCalendar friday.
symbolDictionary at: #Saturday put: gregorianCalendar saturday.
symbolDictionary at: #Sunday put: gregorianCalendar sunday.
gregorianCalendar := ChaltenEnvironment calendarNamed: #GregorianCalendar.
assignmentCommand value: #Monday value: [ gregorianCalendar monday ].
assignmentCommand value: #Tuesday value: [ gregorianCalendar tuesday ].
assignmentCommand value: #Wednesday value: [ gregorianCalendar wednesday ].
assignmentCommand value: #Thursday value: [ gregorianCalendar thursday ].
assignmentCommand value: #Friday value: [ gregorianCalendar friday ].
assignmentCommand value: #Saturday value: [ gregorianCalendar saturday ].
assignmentCommand value: #Sunday value: [ gregorianCalendar sunday ].

symbolDictionary at: #January put: gregorianCalendar january.
symbolDictionary at: #February put: gregorianCalendar february.
symbolDictionary at: #March put: gregorianCalendar march.
symbolDictionary at: #April put: gregorianCalendar april.
symbolDictionary at: #May put: gregorianCalendar may.
symbolDictionary at: #June put: gregorianCalendar june.
symbolDictionary at: #July put: gregorianCalendar july.
symbolDictionary at: #August put: gregorianCalendar august.
symbolDictionary at: #September put: gregorianCalendar september.
symbolDictionary at: #October put: gregorianCalendar october.
symbolDictionary at: #November put: gregorianCalendar november.
symbolDictionary at: #December put: gregorianCalendar december.
assignmentCommand value: #January value: [ gregorianCalendar january ].
assignmentCommand value: #February value: [ gregorianCalendar february ].
assignmentCommand value: #March value: [ gregorianCalendar march ].
assignmentCommand value: #April value: [ gregorianCalendar april ].
assignmentCommand value: #May value: [ gregorianCalendar may ].
assignmentCommand value: #June value: [ gregorianCalendar june ].
assignmentCommand value: #July value: [ gregorianCalendar july ].
assignmentCommand value: #August value: [ gregorianCalendar august ].
assignmentCommand value: #September value: [ gregorianCalendar september ].
assignmentCommand value: #October value: [ gregorianCalendar october ].
assignmentCommand value: #November value: [ gregorianCalendar november ].
assignmentCommand value: #December value: [ gregorianCalendar december ]
48 changes: 24 additions & 24 deletions rowan/components/scripts/defineGlobalsPreLoad.st
Original file line number Diff line number Diff line change
Expand Up @@ -9,32 +9,32 @@ symbolDictionary := Rowan image
"Preliminar definition of global variables for source code to compile.
These will be properly replaced later in the post load script."

symbolDictionary at: #ChaltenEnvironment put: nil.
symbolDictionary at: #TimeUnits put: nil.
symbolDictionary at: #TimeZones put: nil.
symbolDictionary at: #TheBeginningOfTime put: nil.
symbolDictionary at: #TheEndOfTime put: nil.
symbolDictionary at: #ChaltenEnvironment ifAbsentPut: [ nil ].
symbolDictionary at: #TimeUnits ifAbsentPut: [ nil ].
symbolDictionary at: #TimeZones ifAbsentPut: [ nil ].
symbolDictionary at: #TheBeginningOfTime ifAbsentPut: [ nil ].
symbolDictionary at: #TheEndOfTime ifAbsentPut: [ nil ].

"Gregorian calendar specific globals"

symbolDictionary at: #Monday put: nil.
symbolDictionary at: #Tuesday put: nil.
symbolDictionary at: #Wednesday put: nil.
symbolDictionary at: #Thursday put: nil.
symbolDictionary at: #Friday put: nil.
symbolDictionary at: #Saturday put: nil.
symbolDictionary at: #Sunday put: nil.
symbolDictionary at: #Monday ifAbsentPut: [ nil ].
symbolDictionary at: #Tuesday ifAbsentPut: [ nil ].
symbolDictionary at: #Wednesday ifAbsentPut: [ nil ].
symbolDictionary at: #Thursday ifAbsentPut: [ nil ].
symbolDictionary at: #Friday ifAbsentPut: [ nil ].
symbolDictionary at: #Saturday ifAbsentPut: [ nil ].
symbolDictionary at: #Sunday ifAbsentPut: [ nil ].

"Gregorian calendar specifics - months"
symbolDictionary at: #January put: nil.
symbolDictionary at: #February put: nil.
symbolDictionary at: #March put: nil.
symbolDictionary at: #April put: nil.
symbolDictionary at: #May put: nil.
symbolDictionary at: #June put: nil.
symbolDictionary at: #July put: nil.
symbolDictionary at: #August put: nil.
symbolDictionary at: #September put: nil.
symbolDictionary at: #October put: nil.
symbolDictionary at: #November put: nil.
symbolDictionary at: #December put: nil.
symbolDictionary at: #January ifAbsentPut: [ nil ].
symbolDictionary at: #February ifAbsentPut: [ nil ].
symbolDictionary at: #March ifAbsentPut: [ nil ].
symbolDictionary at: #April ifAbsentPut: [ nil ].
symbolDictionary at: #May ifAbsentPut: [ nil ].
symbolDictionary at: #June ifAbsentPut: [ nil ].
symbolDictionary at: #July ifAbsentPut: [ nil ].
symbolDictionary at: #August ifAbsentPut: [ nil ].
symbolDictionary at: #September ifAbsentPut: [ nil ].
symbolDictionary at: #October ifAbsentPut: [ nil ].
symbolDictionary at: #November ifAbsentPut: [ nil ].
symbolDictionary at: #December ifAbsentPut: [ nil ].
6 changes: 3 additions & 3 deletions source/Chalten-Core/TimeOfDay.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -56,19 +56,19 @@ TimeOfDay class >> hours: anHours minutes: aMinutes seconds: aSeconds millisecon
{ #category : 'initialization' }
TimeOfDay class >> initializeFirstTimeOfDay [

firstTimeOfDay := self timeFromMidnight: 0 hoursMeasure
firstTimeOfDay ifNil: [ firstTimeOfDay := self timeFromMidnight: 0 hoursMeasure ]
]

{ #category : 'initialization' }
TimeOfDay class >> initializeLastTimeOfDay [

lastTimeOfDay := self timeFromMidnight: (24 hoursMeasure - 1 millisecondMeasure)
lastTimeOfDay ifNil: [ lastTimeOfDay := self timeFromMidnight: (24 hoursMeasure - 1 millisecondMeasure) ]
]

{ #category : 'initialization' }
TimeOfDay class >> initializeNoon [

noon := self hours: 12
noon ifNil: [ noon := self hours: 12 ]
]

{ #category : 'initialization' }
Expand Down
Loading