46 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| # encoding: utf-8
 | |
| require "mongoid/timestamps/updated/short"
 | |
| 
 | |
| module Mongoid
 | |
|   module Timestamps
 | |
|     # This module handles the behaviour for setting up document updated at
 | |
|     # timestamp.
 | |
|     module UpdatedInt
 | |
|       extend ActiveSupport::Concern
 | |
| 
 | |
|       included do
 | |
|         include Mongoid::Timestamps::Timeless
 | |
| 
 | |
|         field :updated_at, type: Integer
 | |
|         set_callback :create, :before, :set_updated_at
 | |
|         set_callback :update, :before, :set_updated_at
 | |
|       end
 | |
| 
 | |
|       # Update the updated_at field on the Document to the current time.
 | |
|       # This is only called on create and on save.
 | |
|       #
 | |
|       # @example Set the updated at time.
 | |
|       #   person.set_updated_at
 | |
|       def set_updated_at
 | |
|         if able_to_set_updated_at?
 | |
|           self.updated_at = Time.now.utc.to_i unless updated_at_changed?
 | |
|         end
 | |
| 
 | |
|         clear_timeless_option
 | |
|       end
 | |
| 
 | |
|       # Is the updated timestamp able to be set?
 | |
|       #
 | |
|       # @example Can the timestamp be set?
 | |
|       #   document.able_to_set_updated_at?
 | |
|       #
 | |
|       # @return [ true, false ] If the timestamp can be set.
 | |
|       #
 | |
|       # @since 2.4.0
 | |
|       def able_to_set_updated_at?
 | |
|         !frozen? && !timeless? && (new_record? || changed?)
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end
 | 
