Proste cache'owanie metod, zwięzłość i return

def statement_url return nil if self.account_code.blank? return @statement_url unless @statement_url.nil? return @statement_url = SelectFeeds::Statement.new.fetch(self.account_code) end

Kod może nie jest patologiczny ani specjalnie brzydki ale niepotrzebnie rozwlekły, to samo można zapisać krócej:

def statement_url return nil if self.account_code.blank? @statement_url ||= SelectFeeds::Statement.new.fetch(self.account_code) end

Jest tez ActiveSupport::Memoizable,

||= ma tez pewne ograniczenia patrz http://apidock.com/rails/ActiveSupport/memoize#447-Differences-between-normal-or-assign-operator