module Mongoid::History::Trackable::ClassMethods
Public Instance Methods
disable_tracking() { || ... }
click to toggle source
# File lib/mongoid/history/trackable.rb, line 55 def disable_tracking original_flag = Mongoid::History.store[track_history_flag] Mongoid::History.store[track_history_flag] = false yield if block_given? ensure Mongoid::History.store[track_history_flag] = original_flag if block_given? end
Also aliased as: disable_tracking!
dynamic_enabled?()
click to toggle source
# File lib/mongoid/history/trackable.rb, line 51 def dynamic_enabled? Mongoid::Compatibility::Version.mongoid3? || (self < Mongoid::Attributes::Dynamic).present? end
enable_tracking() { || ... }
click to toggle source
# File lib/mongoid/history/trackable.rb, line 63 def enable_tracking original_flag = Mongoid::History.store[track_history_flag] Mongoid::History.store[track_history_flag] = true yield if block_given? ensure Mongoid::History.store[track_history_flag] = original_flag if block_given? end
Also aliased as: enable_tracking!
history_settings(options = {})
click to toggle source
# File lib/mongoid/history/trackable.rb, line 39 def history_settings(options = {}) options = Mongoid::History.default_settings.merge(options.symbolize_keys) options = options.slice(*Mongoid::History.default_settings.keys) options[:paranoia_field] = aliased_fields[options[:paranoia_field].to_s] || options[:paranoia_field].to_s Mongoid::History.trackable_settings ||= {} Mongoid::History.trackable_settings[name.to_sym] = options end
track_history(options = {})
click to toggle source
# File lib/mongoid/history/trackable.rb, line 7 def track_history(options = {}) extend RelationMethods history_options = Mongoid::History::Options.new(self, options) field history_options.options[:version_field].to_sym, type: Integer unless history_options.options[:modifier_field].nil? belongs_to_modifier_options = { class_name: Mongoid::History.modifier_class_name } belongs_to_modifier_options[:inverse_of] = history_options.options[:modifier_field_inverse_of] if history_options.options.key?(:modifier_field_inverse_of) belongs_to_modifier_options[:optional] = true if history_options.options[:modifier_field_optional] && Mongoid::Compatibility::Version.mongoid6_or_newer? belongs_to history_options.options[:modifier_field].to_sym, belongs_to_modifier_options end include MyInstanceMethods extend SingletonMethods delegate :history_trackable_options, to: 'self.class' delegate :track_history?, to: 'self.class' callback_options = history_options.options.slice(:if, :unless) around_update :track_update, **callback_options if history_options.options[:track_update] around_create :track_create, **callback_options if history_options.options[:track_create] around_destroy :track_destroy, **callback_options if history_options.options[:track_destroy] unless respond_to? :mongoid_history_options class_attribute :mongoid_history_options, instance_accessor: false end self.mongoid_history_options = history_options end
track_history?()
click to toggle source
# File lib/mongoid/history/trackable.rb, line 47 def track_history? Mongoid::History.enabled? && Mongoid::History.store[track_history_flag] != false end
track_history_flag()
click to toggle source
# File lib/mongoid/history/trackable.rb, line 74 def track_history_flag "mongoid_history_#{name.underscore}_trackable_enabled".to_sym end
tracker_class()
click to toggle source
# File lib/mongoid/history/trackable.rb, line 78 def tracker_class klass = history_trackable_options[:tracker_class_name] || Mongoid::History.tracker_class_name klass.is_a?(Class) ? klass : klass.to_s.camelize.constantize end