RoloLudo/RoloLudo.package/SfOracle.class/instance/fromDictionary..st

15 lines
544 B
Smalltalk

accessing
fromDictionary: aDictionary
| optionsTable |
name := aDictionary at: 'Name' ifAbsent: [ name := aDictionary at: 'Display name' ].
optionsTable := aDictionary at: 'Table'.
optionsTable doWithIndex: [:opt :i | | key value prevKey |
(i = 1)
ifTrue: [key := 1 to: (opt at: 'Chance') asInteger]
ifFalse: [
prevKey := ((optionsTable at: (i-1)) at: 'Chance').
key := (prevKey asInteger + 1) to: (opt at: 'Chance') asInteger.
].
value := (opt at: 'Description') capitalized.
self options at: key put: value .
].