Module: Mongoid::History::Trackable::ClassMethods
- Defined in:
- lib/mongoid/history/trackable.rb
Instance Method Summary collapse
- #disable_tracking(&_block) ⇒ Object
- #dynamic_enabled? ⇒ Boolean
- #history_settings(options = {}) ⇒ Object
- #track_history(options = {}) ⇒ Object
- #track_history? ⇒ Boolean
- #track_history_flag ⇒ Object
- #tracker_class ⇒ Object
Instance Method Details
#disable_tracking(&_block) ⇒ Object
49 50 51 52 53 54 |
# File 'lib/mongoid/history/trackable.rb', line 49 def disable_tracking(&_block) Mongoid::History.store[track_history_flag] = false yield ensure Mongoid::History.store[track_history_flag] = true end |
#dynamic_enabled? ⇒ Boolean
45 46 47 |
# File 'lib/mongoid/history/trackable.rb', line 45 def dynamic_enabled? Mongoid::Compatibility::Version.mongoid3? || (self < Mongoid::Attributes::Dynamic).present? end |
#history_settings(options = {}) ⇒ Object
33 34 35 36 37 38 39 |
# File 'lib/mongoid/history/trackable.rb', line 33 def history_settings( = {}) = Mongoid::History.default_settings.merge(.symbolize_keys) = .slice(*Mongoid::History.default_settings.keys) [:paranoia_field] = aliased_fields[[:paranoia_field].to_s] || [:paranoia_field].to_s Mongoid::History.trackable_settings ||= {} Mongoid::History.trackable_settings[name.to_sym] = end |
#track_history(options = {}) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/mongoid/history/trackable.rb', line 7 def track_history( = {}) extend EmbeddedMethods = Mongoid::History::Options.new(self) = .parse() field [:version_field].to_sym, type: Integer = { class_name: Mongoid::History.modifier_class_name } [:inverse_of] = [:modifier_field_inverse_of] if .key?(:modifier_field_inverse_of) belongs_to [:modifier_field].to_sym, include MyInstanceMethods extend SingletonMethods delegate :history_trackable_options, to: 'self.class' delegate :track_history?, to: 'self.class' before_update :track_update if [:track_update] before_create :track_create if [:track_create] before_destroy :track_destroy if [:track_destroy] Mongoid::History. ||= {} Mongoid::History.[.scope] = end |
#track_history? ⇒ Boolean
41 42 43 |
# File 'lib/mongoid/history/trackable.rb', line 41 def track_history? Mongoid::History.enabled? && Mongoid::History.store[track_history_flag] != false end |
#track_history_flag ⇒ Object
56 57 58 |
# File 'lib/mongoid/history/trackable.rb', line 56 def track_history_flag "mongoid_history_#{name.underscore}_trackable_enabled".to_sym end |
#tracker_class ⇒ Object
60 61 62 63 |
# File 'lib/mongoid/history/trackable.rb', line 60 def tracker_class klass = [:tracker_class_name] || Mongoid::History.tracker_class_name klass.is_a?(Class) ? klass : klass.to_s.camelize.constantize end |