module MongoidActivityTracker::Tracker
Attributes
actor_cache_methods[RW]
Public Class Methods
included(base)
click to toggle source
# File lib/mongoid_activity_tracker/tracker.rb, line 41 def self.included(base) base.extend ClassMethods base.class_eval do include Mongoid::Document field :action, type: Symbol tracks :actor validates :actor, presence: true, unless: -> { actor_cache && actor_cache[:to_s].present? } validates :action, presence: true end end
Public Instance Methods
created_at()
click to toggle source
# File lib/mongoid_activity_tracker/tracker.rb, line 55 def created_at id.generation_time.in_time_zone(Time.zone) end
Private Instance Methods
set_cache(relation_name)
click to toggle source
# File lib/mongoid_activity_tracker/tracker.rb, line 61 def set_cache(relation_name) accessor_name = [relation_name, 'cache_methods'].join('_') field_name = [relation_name, 'cache'].join('_') return unless send(accessor_name).present? return unless send(relation_name).present? send(accessor_name).each do |m| next if send(field_name)[m].present? send(field_name)[m] = send(relation_name).send(m) if send(relation_name).respond_to?(m) end end