Sha256: 5af136bb1ba100ca7630be886af1b22254b3240756f5988c324b68002fe1f7b7
Contents?: true
Size: 1.23 KB
Versions: 1
Compression:
Stored size: 1.23 KB
Contents
module RailheadMemorize def self.included(base) base.extend ClassMethods end module ClassMethods 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 end end module RailheadMemorizeLoader def self.included(base) base.extend ClassMethods end module ClassMethods def use_memorize include RailheadMemorize end end end ActiveRecord::Base.send :include, RailheadMemorizeLoader
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
railhead_memorize-0.2.0 | lib/railhead_memorize.rb |