34 lines
889 B
Ruby
34 lines
889 B
Ruby
|
|
# encoding: utf-8
|
||
|
|
require "mongoid/timestamps/updated/short"
|
||
|
|
|
||
|
|
module Mongoid
|
||
|
|
module Timestamps
|
||
|
|
# This module handles the behaviour for setting up document created at
|
||
|
|
# timestamp.
|
||
|
|
module CreatedInt
|
||
|
|
extend ActiveSupport::Concern
|
||
|
|
|
||
|
|
included do
|
||
|
|
include Mongoid::Timestamps::Timeless
|
||
|
|
|
||
|
|
field :created_at, type: Integer
|
||
|
|
set_callback :create, :before, :set_created_at
|
||
|
|
end
|
||
|
|
|
||
|
|
# Update the created_at field on the Document to the current time. This is
|
||
|
|
# only called on create.
|
||
|
|
#
|
||
|
|
# @example Set the created at time.
|
||
|
|
# person.set_created_at
|
||
|
|
def set_created_at
|
||
|
|
if !timeless? && !created_at
|
||
|
|
time = Time.now.utc.to_i
|
||
|
|
self.updated_at = time if is_a?(Updated) && !updated_at_changed?
|
||
|
|
self.created_at = time
|
||
|
|
end
|
||
|
|
clear_timeless_option
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|