mongoid-history-patched 0.2.3

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.
@@ -0,0 +1,13 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+
3
+ require 'rubygems'
4
+ require 'bundler/setup'
5
+
6
+ Bundler.require :default, :test
7
+
8
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each do |f|
9
+ require f
10
+ end
11
+
12
+ require 'mongoid-history'
13
+
@@ -0,0 +1,121 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe Mongoid::History::Trackable do
4
+ before :each do
5
+ class MyModel
6
+ include Mongoid::Document
7
+ include Mongoid::History::Trackable
8
+ end
9
+ end
10
+
11
+ after :each do
12
+ Mongoid::History.trackable_class_options = nil
13
+ end
14
+
15
+ it "should have #track_history" do
16
+ MyModel.should respond_to :track_history
17
+ end
18
+
19
+ it "should append trackable_class_options ONLY when #track_history is called" do
20
+ Mongoid::History.trackable_class_options.should be_blank
21
+ MyModel.track_history
22
+ Mongoid::History.trackable_class_options.keys.should == [:my_model]
23
+ end
24
+
25
+ describe "#track_history" do
26
+ before :each do
27
+ class MyModel
28
+ include Mongoid::Document
29
+ include Mongoid::History::Trackable
30
+ track_history
31
+ end
32
+
33
+ @expected_option = {
34
+ :on => :all,
35
+ :modifier_field => :modifier,
36
+ :version_field => :version,
37
+ :scope => :my_model,
38
+ :except => ["created_at", "updated_at", "version", "modifier_id", "_id", "id"],
39
+ :track_create => false,
40
+ :track_update => true,
41
+ :track_destroy => false,
42
+ }
43
+ end
44
+
45
+ after :each do
46
+ Mongoid::History.trackable_class_options = nil
47
+ end
48
+
49
+ it "should have default options" do
50
+ Mongoid::History.trackable_class_options[:my_model].should == @expected_option
51
+ end
52
+
53
+ it "should define callback function #track_update" do
54
+ MyModel.new.private_methods.collect(&:to_sym).should include(:track_update)
55
+ end
56
+
57
+ it "should define callback function #track_create" do
58
+ MyModel.new.private_methods.collect(&:to_sym).should include(:track_create)
59
+ end
60
+
61
+ it "should define callback function #track_destroy" do
62
+ MyModel.new.private_methods.collect(&:to_sym).should include(:track_destroy)
63
+ end
64
+
65
+ it "should define #history_trackable_options" do
66
+ MyModel.history_trackable_options.should == @expected_option
67
+ end
68
+
69
+ context "sub-model" do
70
+ before :each do
71
+ class MySubModel < MyModel
72
+ end
73
+ end
74
+
75
+ it "should have default options" do
76
+ Mongoid::History.trackable_class_options[:my_model].should == @expected_option
77
+ end
78
+
79
+ it "should define #history_trackable_options" do
80
+ MySubModel.history_trackable_options.should == @expected_option
81
+ end
82
+ end
83
+
84
+ context "track_history" do
85
+
86
+ it "should be enabled on the current thread" do
87
+ MyModel.new.track_history?.should == true
88
+ end
89
+
90
+ it "should be disabled within disable_tracking" do
91
+ MyModel.disable_tracking do
92
+ MyModel.new.track_history?.should == false
93
+ end
94
+ end
95
+
96
+ it "should be rescued if an exception occurs" do
97
+ begin
98
+ MyModel.disable_tracking do
99
+ raise "exception"
100
+ end
101
+ rescue
102
+ end
103
+ MyModel.new.track_history?.should == true
104
+ end
105
+
106
+ it "should be disabled only for the class that calls disable_tracking" do
107
+ class MyModel2
108
+ include Mongoid::Document
109
+ include Mongoid::History::Trackable
110
+ track_history
111
+ end
112
+
113
+ MyModel.disable_tracking do
114
+ MyModel2.new.track_history?.should == true
115
+ end
116
+ end
117
+
118
+ end
119
+
120
+ end
121
+ end
@@ -0,0 +1,17 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe Mongoid::History::Tracker do
4
+ before :each do
5
+ class MyTracker
6
+ include Mongoid::History::Tracker
7
+ end
8
+ end
9
+
10
+ after :each do
11
+ Mongoid::History.tracker_class_name = nil
12
+ end
13
+
14
+ it "should set tracker_class_name when included" do
15
+ Mongoid::History.tracker_class_name.should == :my_tracker
16
+ end
17
+ end
metadata ADDED
@@ -0,0 +1,205 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mongoid-history-patched
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.3
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Aaron Qian
9
+ - Justin Grimes
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2012-04-20 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: easy_diff
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ! '>='
29
+ - !ruby/object:Gem::Version
30
+ version: '0'
31
+ - !ruby/object:Gem::Dependency
32
+ name: mongoid
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: 2.0.0
39
+ type: :runtime
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: 2.0.0
47
+ - !ruby/object:Gem::Dependency
48
+ name: bson_ext
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ - !ruby/object:Gem::Dependency
64
+ name: rspec
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ type: :development
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ - !ruby/object:Gem::Dependency
80
+ name: yard
81
+ requirement: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ! '>='
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ type: :development
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ! '>='
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ - !ruby/object:Gem::Dependency
96
+ name: bundler
97
+ requirement: !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ! '>='
101
+ - !ruby/object:Gem::Version
102
+ version: 1.0.0
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: 1.0.0
111
+ - !ruby/object:Gem::Dependency
112
+ name: jeweler
113
+ requirement: !ruby/object:Gem::Requirement
114
+ none: false
115
+ requirements:
116
+ - - ! '>='
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ none: false
123
+ requirements:
124
+ - - ! '>='
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
127
+ - !ruby/object:Gem::Dependency
128
+ name: database_cleaner
129
+ requirement: !ruby/object:Gem::Requirement
130
+ none: false
131
+ requirements:
132
+ - - ! '>='
133
+ - !ruby/object:Gem::Version
134
+ version: '0'
135
+ type: :development
136
+ prerelease: false
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ description: ! "In frustration of Mongoid::Versioning, I created this plugin for tracking
144
+ historical changes for any document, including embedded ones. It achieves this by
145
+ storing all history tracks in a single collection that you define. (See Usage for
146
+ more details) Embedded documents are referenced by storing an association path,
147
+ which is an array of document_name and document_id fields starting from the top
148
+ most parent document and down to the embedded document that should track history.\n\n
149
+ \ This plugin implements multi-user undo, which allows users to undo any history
150
+ change in any order. Undoing a document also creates a new history track. This is
151
+ great for auditing and preventing vandalism, but it is probably not suitable for
152
+ use cases such as a wiki."
153
+ email:
154
+ - aq1018@gmail.com
155
+ - justin.mgrimes@gmail.com
156
+ executables: []
157
+ extensions: []
158
+ extra_rdoc_files:
159
+ - LICENSE.txt
160
+ - README.md
161
+ files:
162
+ - .document
163
+ - .rspec
164
+ - .travis.yml
165
+ - Gemfile
166
+ - LICENSE.txt
167
+ - README.md
168
+ - Rakefile
169
+ - VERSION
170
+ - lib/mongoid-history.rb
171
+ - lib/mongoid/history.rb
172
+ - lib/mongoid/history/sweeper.rb
173
+ - lib/mongoid/history/trackable.rb
174
+ - lib/mongoid/history/tracker.rb
175
+ - mongoid-history.gemspec
176
+ - spec/integration/integration_spec.rb
177
+ - spec/spec_helper.rb
178
+ - spec/trackable_spec.rb
179
+ - spec/tracker_spec.rb
180
+ homepage: http://github.com/aq1018/mongoid-history
181
+ licenses:
182
+ - MIT
183
+ post_install_message:
184
+ rdoc_options: []
185
+ require_paths:
186
+ - lib
187
+ required_ruby_version: !ruby/object:Gem::Requirement
188
+ none: false
189
+ requirements:
190
+ - - ! '>='
191
+ - !ruby/object:Gem::Version
192
+ version: '0'
193
+ required_rubygems_version: !ruby/object:Gem::Requirement
194
+ none: false
195
+ requirements:
196
+ - - ! '>='
197
+ - !ruby/object:Gem::Version
198
+ version: '0'
199
+ requirements: []
200
+ rubyforge_project:
201
+ rubygems_version: 1.8.24
202
+ signing_key:
203
+ specification_version: 3
204
+ summary: history tracking, auditing, undo, redo for mongoid
205
+ test_files: []