module RailheadMemorize::ClassMethods
Public Instance Methods
memorize(key)
click to toggle source
# File lib/railhead_memorize.rb, line 10 def memorize(key) class_eval <<-END alias #{key}_unmemorized #{key} def memorize_#{key} unless frozen? _memorize_#{key} = #{key}_unmemorized if respond_to?(:memorized_#{key}) and (memorized_#{key}.blank? or MultiJson.load(memorized_#{key}) != _memorize_#{key}) update_column :memorized_#{key}, MultiJson.dump(_memorize_#{key}) end _memorize_#{key} end end def #{key} @_#{key} ||= if respond_to?(:memorized_#{key}) if not memorized_#{key}.blank? begin MultiJson.load(memorized_#{key}) rescue memorize_#{key} end else memorize_#{key} end else #{key}_unmemorized end end END end