mongoid-history 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
- data/lib/mongoid/history/trackable.rb +13 -1
- data/mongoid-history.gemspec +2 -2
- metadata +3 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.5
|
@@ -38,6 +38,7 @@ module Mongoid::History
|
|
38
38
|
extend SingletonMethods
|
39
39
|
|
40
40
|
delegate :history_trackable_options, :to => 'self.class'
|
41
|
+
delegate :track_history?, :to => 'self.class'
|
41
42
|
|
42
43
|
before_update :track_update
|
43
44
|
before_create :track_create if options[:track_create]
|
@@ -47,8 +48,18 @@ module Mongoid::History
|
|
47
48
|
Mongoid::History.trackable_classes << self
|
48
49
|
Mongoid::History.trackable_class_options ||= {}
|
49
50
|
Mongoid::History.trackable_class_options[model_name] = options
|
51
|
+
Thread.current[:mongoid_history_trackable_enabled] = true
|
50
52
|
end
|
51
53
|
|
54
|
+
def track_history?
|
55
|
+
!!Thread.current[:mongoid_history_trackable_enabled]
|
56
|
+
end
|
57
|
+
|
58
|
+
def disable_tracking(&block)
|
59
|
+
Thread.current[:mongoid_history_trackable_enabled] = false
|
60
|
+
yield
|
61
|
+
Thread.current[:mongoid_history_trackable_enabled] = true
|
62
|
+
end
|
52
63
|
end
|
53
64
|
|
54
65
|
module InstanceMethods
|
@@ -58,7 +69,7 @@ module Mongoid::History
|
|
58
69
|
|
59
70
|
private
|
60
71
|
def should_track_update?
|
61
|
-
!modified_attributes_for_update.blank?
|
72
|
+
track_history? && !modified_attributes_for_update.blank?
|
62
73
|
end
|
63
74
|
|
64
75
|
def triverse_association_chain(node=self)
|
@@ -113,6 +124,7 @@ module Mongoid::History
|
|
113
124
|
end
|
114
125
|
|
115
126
|
def track_create
|
127
|
+
return unless track_history?
|
116
128
|
current_version = (self.send(history_trackable_options[:version_field]) || 0 ) + 1
|
117
129
|
self.send("#{history_trackable_options[:version_field]}=", current_version)
|
118
130
|
Mongoid::History.tracker_class.create!(history_tracker_attributes.merge(:version => current_version))
|
data/mongoid-history.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{mongoid-history}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.5"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Aaron Qian"]
|
12
|
-
s.date = %q{2011-03-
|
12
|
+
s.date = %q{2011-03-07}
|
13
13
|
s.description = %q{In frustration of Mongoid::Versioning, I created this plugin for tracking historical changes for any document, including embedded ones. It achieves this by storing all history tracks in a single collection that you define. (See Usage for more details) Embedded documents are referenced by storing an association path, which is an array of document_name and document_id fields starting from the top most parent document and down to the embedded document that should track history.
|
14
14
|
|
15
15
|
This plugin implements multi-user undo, which allows users to undo any history change in any order. Undoing a document also creates a new history track. This is great for auditing and preventing vandalism, but it is probably not suitable for use cases such as a wiki.}
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: mongoid-history
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.5
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Aaron Qian
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-03-
|
13
|
+
date: 2011-03-07 00:00:00 -08:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -167,7 +167,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
167
167
|
requirements:
|
168
168
|
- - ">="
|
169
169
|
- !ruby/object:Gem::Version
|
170
|
-
hash: -
|
170
|
+
hash: -4485611789112804696
|
171
171
|
segments:
|
172
172
|
- 0
|
173
173
|
version: "0"
|