aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/integration.rb
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2012-12-10 16:22:30 -0300
committerRafael Mendonça França <rafaelmfranca@gmail.com>2012-12-10 17:43:26 -0300
commitb097652ef67142b7273b17dcfeba1710a5b5cadf (patch)
tree1ab4244ce0261c5da4e8c249787450c679c46961 /activerecord/lib/active_record/integration.rb
parent660882bda42ffacc602758631c2a2e6ba09c1ee1 (diff)
downloadrails-b097652ef67142b7273b17dcfeba1710a5b5cadf.tar.gz
rails-b097652ef67142b7273b17dcfeba1710a5b5cadf.tar.bz2
rails-b097652ef67142b7273b17dcfeba1710a5b5cadf.zip
Allow users to choose the timestamp format in the cache key
This can be done using the class attribute cache_timestamp_format Closes #8195
Diffstat (limited to 'activerecord/lib/active_record/integration.rb')
-rw-r--r--activerecord/lib/active_record/integration.rb13
1 files changed, 12 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/integration.rb b/activerecord/lib/active_record/integration.rb
index 23c272ef12..f2ace18d44 100644
--- a/activerecord/lib/active_record/integration.rb
+++ b/activerecord/lib/active_record/integration.rb
@@ -1,5 +1,16 @@
module ActiveRecord
module Integration
+ extend ActiveSupport::Concern
+
+ included do
+ ##
+ # :singleton-method:
+ # Indicates the format used to generate the timestamp format in the cache key.
+ # This is +:number+, by default.
+ class_attribute :cache_timestamp_format, :instance_writer => false
+ self.cache_timestamp_format = :number
+ end
+
# Returns a String, which Action Pack uses for constructing an URL to this
# object. The default implementation returns this record's id as a String,
# or nil if this record's unsaved.
@@ -39,7 +50,7 @@ module ActiveRecord
when new_record?
"#{self.class.model_name.cache_key}/new"
when timestamp = self[:updated_at]
- timestamp = timestamp.utc.to_s(:nsec)
+ timestamp = timestamp.utc.to_s(cache_timestamp_format)
"#{self.class.model_name.cache_key}/#{id}-#{timestamp}"
else
"#{self.class.model_name.cache_key}/#{id}"