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 |