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