Sha256: fa9599f54d5231fc584d32bf366041d90dd351766f04b825eb881cf2d3e52816
Contents?: true
Size: 1.55 KB
Versions: 2
Compression:
Stored size: 1.55 KB
Contents
module ActiveRemote module Integration def self.included(klass) klass.class_eval do unless singleton_methods.include?(:cache_timestamp_format) ## # :singleton-method: # Indicates the format used to generate the timestamp format in the cache key. # This is +:number+, by default. # def self.cache_timestamp_format :number end end end end ## # Returns a String, which can be used for constructing an URL to this # object. The default implementation returns this record's guid as a String, # or nil if this record's unsaved. # # user = User.search(:name => 'Phusion') # user.to_param # => "GUID-1" # def to_param self[:guid] && self[:guid].to_s end ## # Returns a cache key that can be used to identify this record. # # ==== Examples # # Product.new.cache_key # => "products/new" # Product.search(:guid => "derp-5").cache_key # => "products/derp-5" (updated_at not available) # Person.search(:guid => "derp-5").cache_key # => "people/derp-5-20071224150000" (updated_at available) # def cache_key case when new_record? then "#{self.class.name.underscore}/new" when timestamp = self[:updated_at] then timestamp = timestamp.utc.to_s(self.class.cache_timestamp_format) "#{self.class.name.underscore}/#{self.to_param}-#{timestamp}" else "#{self.class.name.underscore}/#{self.to_param}" end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
active_remote-1.6.1 | lib/active_remote/integration.rb |
active_remote-1.6.0 | lib/active_remote/integration.rb |