The limit is 256 literals per method. However, a literal array is
still just one literal. So you can put all your data into one literal
if you want:
#((
value 2
cost -3
step 2
defense 3
combatMove 7
fullMove 14
carry 10
lift 20
death 20
unconscious 11
woundThreshold 4
recovery 05
mysticArmor 0
) (
value 2
cost -3
step 2
defense 3
combatMove 7
fullMove 14
carry 10
lift 20
death 20
unconscious 11
woundThreshold 4
recovery 05
mysticArmor 0
) )
Then just iterate over it (#do: for the outer array, #pairsDo: is
handy for the inner) to construct your objects. Btw, you surely would
like to make a class and not just use dictionaries ;)
256 literals per method seems find to me, initializing such a large
dictionary was unusual for me and something of an experiment (mainly
to avoid reading from a file at all). I had the data in YAML that I
just wrote a small script to generate smalltalk code from.
I didn't make a class mainly because I don't need the data for
anything more than lookups dictionaries give me. I'll give your
suggestion above a try but might just convert the YAML to XML or CSV
and read the table in from the file. Maybe as an array of RecordEntry
instead of using a dictionary.
I will have a need for a database (or some persistence layer) later in
the project, so might just bite the bullet now.
Thanks,
Robert
_______________________________________________
Beginners mailing list
Beginners@lists.squeakfoundation.org
http://lists.squeakfoundation.org/mailman/listinfo/beginners