lib/redis_object/timestamps.rb in redis_object-0.5.0 vs lib/redis_object/timestamps.rb in redis_object-1.0

- old
+ new

@@ -1,57 +1,37 @@ module Seabright module Timestamps def update_timestamps - # return unless self.class.time_matters? + return if @@time_irrelevant set(:created_at, Time.now) if !is_set?(:created_at) set(:updated_at, Time.now) end + def mset(dat) + super(dat) + set(:updated_at, Time.now) + end + + def set(k,v) + super(k,v) + set(:updated_at, Time.now) unless k.to_sym == :updated_at + end + + def save + super + update_timestamps + end + module ClassMethods - def intercept_sets_for_timestamps! - return if @intercepted_sets_for_timestamps - self.class_eval do - alias_method :untimestamped_set, :set unless method_defined?(:untimestamped_set) - def set(k,v) - ret = untimestamped_set(k,v) - set(:updated_at, Time.now) unless k.to_sym == :updated_at - ret - end - alias_method :untimestamped_mset, :mset unless method_defined?(:untimestamped_mset) - def mset(dat) - ret = untimestamped_mset(dat) - set(:updated_at, Time.now) - ret - end - alias_method :untimestamped_setnx, :setnx unless method_defined?(:untimestamped_setnx) - def setnx(k,v) - ret = untimestamped_setnx(k,v) - set(:updated_at, Time.now) unless k.to_sym == :updated_at - ret - end - alias_method :untimestamped_save, :save unless method_defined?(:untimestamped_save) - def save - ret = untimestamped_save() - update_timestamps - ret - end - end - @intercepted_sets_for_timestamps = true + def time_matters_not! + @@time_irrelevant = true + @@sort_indices.delete(:created_at) + @@sort_indices.delete(:updated_at) end - # def time_matters? - # @time_irrelevant != true - # end - # - # def time_matters_not! - # @time_irrelevant = true - # sort_indices.delete(:created_at) - # sort_indices.delete(:updated_at) - # end - # def recently_created(num=5) self.indexed(:created_at,num,true) end def recently_updated(num=5) @@ -59,16 +39,15 @@ end end def self.included(base) - # @time_irrelevant = false + @@time_irrelevant = false base.send(:sort_by,:created_at) base.send(:sort_by,:updated_at) base.send(:register_format,:created_at, :date) base.send(:register_format,:updated_at, :date) base.extend(ClassMethods) - base.intercept_sets_for_timestamps! end end end \ No newline at end of file