module TopModel::Timestamp::Model
Public Class Methods
included(base)
click to toggle source
# File lib/topmodel/timestamp.rb, line 4 def self.included(base) base.class_eval do attributes :created_at, :updated_at before_create :set_created_at before_save :set_updated_at end end
Public Instance Methods
created_at=(time)
click to toggle source
# File lib/topmodel/timestamp.rb, line 18 def created_at=(time) write_attribute(:created_at, parse_time(time)) end
touch()
click to toggle source
# File lib/topmodel/timestamp.rb, line 13 def touch set_updated_at save! end
updated_at=(time)
click to toggle source
# File lib/topmodel/timestamp.rb, line 22 def updated_at=(time) write_attribute(:updated_at, parse_time(time)) end
Private Instance Methods
current_time()
click to toggle source
# File lib/topmodel/timestamp.rb, line 36 def current_time if Time.respond_to?(:current) Time.current else Time.now end end
parse_time(time)
click to toggle source
# File lib/topmodel/timestamp.rb, line 27 def parse_time(time) return time unless time.is_a?(String) if Time.respond_to?(:zone) && Time.zone Time.zone.parse(time) else Time.parse(time) end end
set_created_at()
click to toggle source
# File lib/topmodel/timestamp.rb, line 44 def set_created_at self.created_at = current_time end
set_updated_at()
click to toggle source
# File lib/topmodel/timestamp.rb, line 48 def set_updated_at self.updated_at = current_time end