We consider how to configure the chart based on provided information and the data the chart finds available in its environment.
Goal: a chart should be useful without configuration. However, once configured, it should still be useful in a variety of similar situations.
Strategy: we first look for dimensions, then data/methods of those dimensions, and then scale based on what we find.
Find Dimensions
✔ if keys in text, use them.
else look at each page, starting from plugin
if page has data ✔, use last one
else if page has methods ✔, use union of computed values
else report "can't find any data" ✔
Find Cases
look at each page, starting from plugin
if page has methods where union matches, add it
else if page has data that match, add them
else report "can't find data for #{dimension}" ✔
Find Scales
✔ if single number in text, use it for all
✔ if scaled dimensions in text, use for each
if unscaled dimensions remain ...
✔ if multiple cases, scale each to max of cases
✔ else scale all to max of all dimensions
Examples
✔ unspecified dimensions and scale (blank line)
✔ unspecified dimensions, specified scale
100
✔ specified dimensions, unspecified scale
Alpha Beta Gamma
✔ specified dimensions and scales
20 Alpha 30 Beta 50 Gamma