class CachedAccount < CachedDelegateClass(Recurly::Account) self.cache_key = :account_code cache_constructor :find cache(:billing_info) cache(:subscription) { subscriptions.live.first } cache(:add_ons) { subscription.try(:add_ons).to_a } cache(:plan) { subscription.try :plan } cache(:balance) { BigDecimal('0.01') * invoices.past_due.map(&:total_in_cents).sum } end