I think that where possible the gems should avoid memo-izing or caching any data. Taking a leaf from the functional programming approach, I think the gems will be simpler and easier to maintain if they don't do any state management, which can be handled by the AR support in the main rails projectscope system. I think a call to raw_data or image on the gem should always generate the representation from scratch. Conversely it's calls to the MetricSample model in the rails app that will always pull the database stored data for efficiency - at least that's how we've got the Rails app working at present ...
I think that where possible the gems should avoid memo-izing or caching any data. Taking a leaf from the functional programming approach, I think the gems will be simpler and easier to maintain if they don't do any state management, which can be handled by the AR support in the main rails projectscope system. I think a call to raw_data or image on the gem should always generate the representation from scratch. Conversely it's calls to the MetricSample model in the rails app that will always pull the database stored data for efficiency - at least that's how we've got the Rails app working at present ...