Module: Mongoid::History
- Defined in:
- lib/mongoid/history.rb,
lib/mongoid/history/options.rb,
lib/mongoid/history/tracker.rb,
lib/mongoid/history/version.rb,
lib/mongoid/history/trackable.rb,
lib/mongoid/history/attributes/base.rb,
lib/mongoid/history/attributes/create.rb,
lib/mongoid/history/attributes/update.rb,
lib/mongoid/history/attributes/destroy.rb
Defined Under Namespace
Modules: Attributes, Trackable, Tracker Classes: Options
Constant Summary collapse
- GLOBAL_TRACK_HISTORY_FLAG =
'mongoid_history_trackable_enabled'.freeze
- VERSION =
'0.8.5'.freeze
Class Attribute Summary collapse
-
.current_user_method ⇒ Object
Returns the value of attribute current_user_method.
-
.modifier_class_name ⇒ Object
Returns the value of attribute modifier_class_name.
-
.trackable_settings ⇒ Object
Returns the value of attribute trackable_settings.
-
.tracker_class_name ⇒ Object
Returns the value of attribute tracker_class_name.
Class Method Summary collapse
- .default_settings ⇒ Object
- .disable ⇒ Object (also: disable!)
- .enable ⇒ Object (also: enable!)
- .enabled? ⇒ Boolean
- .reset! ⇒ Object
- .store ⇒ Object
- .trackable_class_settings(trackable_class) ⇒ Object
Class Attribute Details
.current_user_method ⇒ Object
Returns the value of attribute current_user_method.
20 21 22 |
# File 'lib/mongoid/history.rb', line 20 def current_user_method @current_user_method end |
.modifier_class_name ⇒ Object
Returns the value of attribute modifier_class_name.
19 20 21 |
# File 'lib/mongoid/history.rb', line 19 def modifier_class_name @modifier_class_name end |
.trackable_settings ⇒ Object
Returns the value of attribute trackable_settings.
18 19 20 |
# File 'lib/mongoid/history.rb', line 18 def trackable_settings @trackable_settings end |
.tracker_class_name ⇒ Object
Returns the value of attribute tracker_class_name.
17 18 19 |
# File 'lib/mongoid/history.rb', line 17 def tracker_class_name @tracker_class_name end |
Class Method Details
.default_settings ⇒ Object
49 50 51 |
# File 'lib/mongoid/history.rb', line 49 def default_settings @default_settings ||= { paranoia_field: 'deleted_at' } end |
.disable ⇒ Object Also known as: disable!
22 23 24 25 26 27 28 |
# File 'lib/mongoid/history.rb', line 22 def disable original_flag = store[GLOBAL_TRACK_HISTORY_FLAG] store[GLOBAL_TRACK_HISTORY_FLAG] = false yield if block_given? ensure store[GLOBAL_TRACK_HISTORY_FLAG] = original_flag if block_given? end |
.enable ⇒ Object Also known as: enable!
30 31 32 33 34 35 36 |
# File 'lib/mongoid/history.rb', line 30 def enable original_flag = store[GLOBAL_TRACK_HISTORY_FLAG] store[GLOBAL_TRACK_HISTORY_FLAG] = true yield if block_given? ensure store[GLOBAL_TRACK_HISTORY_FLAG] = original_flag if block_given? end |
.enabled? ⇒ Boolean
41 42 43 |
# File 'lib/mongoid/history.rb', line 41 def enabled? store[GLOBAL_TRACK_HISTORY_FLAG] != false end |
.reset! ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/mongoid/history.rb', line 57 def reset! Mongoid::History.modifier_class_name = 'User' Mongoid::History.trackable_settings = {} Mongoid::History.current_user_method ||= :current_user Mongoid.models.each do |model| next unless model.included_modules.include? Mongoid::History::Trackable model.singleton_class.class_eval do # Inverse of class_attribute %i[mongoid_history_options mongoid_history_options= mongoid_history_options?].each { |m| remove_possible_method(m) } end end end |
.store ⇒ Object
45 46 47 |
# File 'lib/mongoid/history.rb', line 45 def store defined?(RequestStore) ? RequestStore.store : Thread.current end |
.trackable_class_settings(trackable_class) ⇒ Object
53 54 55 |
# File 'lib/mongoid/history.rb', line 53 def trackable_class_settings(trackable_class) trackable_settings[trackable_class.name.to_sym] || default_settings end |