mongoid-audit 0.3.2 → 1.0.0.alpha.1
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.
- checksums.yaml +4 -4
- data/.gitignore +0 -1
- data/.ruby-version +1 -1
- data/Gemfile.lock +74 -0
- data/README.md +38 -171
- data/Rakefile +0 -12
- data/config/mongoid.yml +0 -0
- data/lib/mongoid-audit.rb +14 -27
- data/lib/mongoid-audit/history_tracker.rb +6 -0
- data/lib/mongoid-audit/rails_admin.rb +119 -108
- data/lib/mongoid-audit/railtie.rb +6 -16
- data/lib/mongoid-audit/trackable.rb +12 -262
- data/lib/mongoid-audit/version.rb +1 -1
- data/mongoid-audit.gemspec +7 -8
- metadata +41 -85
- data/.coveralls.yml +0 -1
- data/.rspec +0 -1
- data/.travis.yml +0 -15
- data/lib/mongoid-audit/mongoid_observer.rb +0 -172
- data/lib/mongoid-audit/sweeper.rb +0 -46
- data/lib/mongoid-audit/tracker.rb +0 -170
- data/spec/integration/integration_spec.rb +0 -666
- data/spec/spec_helper.rb +0 -28
- data/spec/support/database_cleaner.rb +0 -11
- data/spec/support/mongoid.rb +0 -16
- data/spec/trackable_spec.rb +0 -134
- data/spec/tracker_spec.rb +0 -17
@@ -1,18 +1,8 @@
|
|
1
|
-
module Mongoid
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
config.after_initialize do
|
6
|
-
::Mongoid::Audit.tracker_class.add_observer( ::Mongoid::Audit::Sweeper.instance )
|
7
|
-
# install model observer and action controller filter
|
8
|
-
if defined?(ActionController) and defined?(ActionController::Base)
|
9
|
-
ActionController::Base.class_eval do
|
10
|
-
before_filter { |controller| ::Mongoid::Audit::Sweeper.instance.before(controller) }
|
11
|
-
after_filter { |controller| ::Mongoid::Audit::Sweeper.instance.after(controller) }
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
1
|
+
module Mongoid::Audit
|
2
|
+
class Railtie < Rails::Railtie
|
3
|
+
initializer "mongoid_audit.setup" do
|
4
|
+
#require_dependency 'history_tracker.rb' if Rails.env.development?
|
16
5
|
end
|
17
6
|
end
|
18
|
-
end
|
7
|
+
end
|
8
|
+
|
@@ -1,264 +1,14 @@
|
|
1
|
-
module
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
:version_field => :version,
|
13
|
-
:scope => scope_name,
|
14
|
-
:track_create => false,
|
15
|
-
:track_update => true,
|
16
|
-
:track_destroy => false,
|
17
|
-
}
|
18
|
-
|
19
|
-
options = default_options.merge(options)
|
20
|
-
|
21
|
-
# normalize except fields
|
22
|
-
# manually ensure _id, id, version will not be tracked in history
|
23
|
-
options[:except] = [options[:except]] unless options[:except].is_a? Array
|
24
|
-
options[:except] << options[:version_field]
|
25
|
-
options[:except] += [:created_at, :updated_at, :deleted_at, :c_at, :u_at]
|
26
|
-
options[:except] << "#{options[:modifier_field]}_id".to_sym
|
27
|
-
options[:except] += [:_id, :id]
|
28
|
-
options[:except] = options[:except].map(&:to_s).flatten.compact.uniq
|
29
|
-
options[:except].map(&:to_s)
|
30
|
-
|
31
|
-
# normalize fields to track to either :all or an array of strings
|
32
|
-
if options[:on] != :all
|
33
|
-
options[:on] = [options[:on]] unless options[:on].is_a? Array
|
34
|
-
options[:on] = options[:on].map(&:to_s).flatten.uniq
|
35
|
-
end
|
36
|
-
|
37
|
-
field options[:version_field].to_sym, :type => Integer
|
38
|
-
belongs_to options[:modifier_field].to_sym, :class_name => Mongoid::Audit.modifier_class_name, inverse_of: nil
|
39
|
-
|
40
|
-
include MyInstanceMethods
|
41
|
-
extend SingletonMethods
|
42
|
-
|
43
|
-
delegate :history_trackable_options, :to => 'self.class'
|
44
|
-
delegate :track_history?, :to => 'self.class'
|
45
|
-
|
46
|
-
before_update :track_update if options[:track_update]
|
47
|
-
before_create :track_create if options[:track_create]
|
48
|
-
before_destroy :track_destroy if options[:track_destroy]
|
49
|
-
|
50
|
-
Mongoid::Audit.trackable_class_options ||= {}
|
51
|
-
Mongoid::Audit.trackable_class_options[scope_name] = options
|
52
|
-
end
|
53
|
-
|
54
|
-
def track_history?
|
55
|
-
enabled = Thread.current[track_history_flag]
|
56
|
-
enabled.nil? ? true : enabled
|
57
|
-
end
|
58
|
-
|
59
|
-
def disable_tracking(&block)
|
60
|
-
begin
|
61
|
-
Thread.current[track_history_flag] = false
|
62
|
-
yield
|
63
|
-
ensure
|
64
|
-
Thread.current[track_history_flag] = true
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
def track_history_flag
|
69
|
-
"mongoid_history_#{self.name.underscore}_trackable_enabled".to_sym
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
module MyInstanceMethods
|
74
|
-
def history_tracks
|
75
|
-
@history_tracks ||= Mongoid::Audit.tracker_class.where(:scope => history_trackable_options[:scope], :association_chain => association_hash)
|
76
|
-
end
|
77
|
-
|
78
|
-
# undo :from => 1, :to => 5
|
79
|
-
# undo 4
|
80
|
-
# undo :last => 10
|
81
|
-
def undo!(modifier, options_or_version=nil)
|
82
|
-
versions = get_versions_criteria(options_or_version).to_a
|
83
|
-
versions.sort!{|v1, v2| v2.version <=> v1.version}
|
84
|
-
|
85
|
-
versions.each do |v|
|
86
|
-
undo_attr = v.undo_attr(modifier)
|
87
|
-
self.attributes = v.undo_attr(modifier)
|
88
|
-
end
|
89
|
-
save!
|
90
|
-
end
|
91
|
-
|
92
|
-
def redo!(modifier, options_or_version=nil)
|
93
|
-
versions = get_versions_criteria(options_or_version).to_a
|
94
|
-
versions.sort!{|v1, v2| v1.version <=> v2.version}
|
95
|
-
|
96
|
-
versions.each do |v|
|
97
|
-
redo_attr = v.redo_attr(modifier)
|
98
|
-
self.attributes = redo_attr
|
99
|
-
end
|
100
|
-
save!
|
101
|
-
end
|
102
|
-
|
103
|
-
private
|
104
|
-
def get_versions_criteria(options_or_version)
|
105
|
-
if options_or_version.is_a? Hash
|
106
|
-
options = options_or_version
|
107
|
-
if options[:from] && options[:to]
|
108
|
-
lower = options[:from] >= options[:to] ? options[:to] : options[:from]
|
109
|
-
upper = options[:from] < options[:to] ? options[:to] : options[:from]
|
110
|
-
versions = history_tracks.where( :version.in => (lower .. upper).to_a )
|
111
|
-
elsif options[:last]
|
112
|
-
versions = history_tracks.limit( options[:last] )
|
113
|
-
else
|
114
|
-
raise "Invalid options, please specify (:from / :to) keys or :last key."
|
115
|
-
end
|
116
|
-
else
|
117
|
-
options_or_version = options_or_version.to_a if options_or_version.is_a?(Range)
|
118
|
-
version_field_name = history_trackable_options[:version_field]
|
119
|
-
version = options_or_version || self.attributes[version_field_name] || self.attributes[version_field_name.to_s]
|
120
|
-
version = [ version ].flatten
|
121
|
-
versions = history_tracks.where(:version.in => version)
|
122
|
-
end
|
123
|
-
versions.desc(:version)
|
124
|
-
end
|
125
|
-
|
126
|
-
def should_track_update?
|
127
|
-
track_history? && !modified_attributes_for_update.blank?
|
128
|
-
end
|
129
|
-
|
130
|
-
def traverse_association_chain(node=self)
|
131
|
-
list = node._parent ? traverse_association_chain(node._parent) : []
|
132
|
-
list << association_hash(node)
|
133
|
-
list
|
134
|
-
end
|
135
|
-
|
136
|
-
def association_hash(node=self)
|
137
|
-
|
138
|
-
# We prefer to look up associations through the parent record because
|
139
|
-
# we're assured, through the object creation, it'll exist. Whereas we're not guarenteed
|
140
|
-
# the child to parent (embedded_in, belongs_to) relation will be defined
|
141
|
-
if node._parent
|
142
|
-
meta = _parent.relations.values.select do |relation|
|
143
|
-
relation.class_name == node.class.to_s
|
144
|
-
end.first
|
145
|
-
end
|
146
|
-
|
147
|
-
# if root node has no meta, and should use class name instead
|
148
|
-
name = meta ? meta.key.to_s : node.class.name
|
149
|
-
|
150
|
-
{ 'name' => name, 'id' => node.id}
|
151
|
-
end
|
152
|
-
|
153
|
-
def modified_attributes_for_update
|
154
|
-
@modified_attributes_for_update ||= if history_trackable_options[:on] == :all
|
155
|
-
changes.reject do |k, v|
|
156
|
-
history_trackable_options[:except].include?(k)
|
157
|
-
end
|
158
|
-
else
|
159
|
-
changes.reject do |k, v|
|
160
|
-
!history_trackable_options[:on].include?(k)
|
161
|
-
end
|
162
|
-
|
163
|
-
end
|
164
|
-
end
|
165
|
-
|
166
|
-
def modified_attributes_for_create
|
167
|
-
@modified_attributes_for_create ||= attributes.inject({}) do |h, pair|
|
168
|
-
k,v = pair
|
169
|
-
h[k] = [nil, v]
|
170
|
-
h
|
171
|
-
end.reject do |k, v|
|
172
|
-
history_trackable_options[:except].include?(k)
|
173
|
-
end
|
174
|
-
end
|
175
|
-
|
176
|
-
def modified_attributes_for_destroy
|
177
|
-
@modified_attributes_for_destroy ||= attributes.inject({}) do |h, pair|
|
178
|
-
k,v = pair
|
179
|
-
h[k] = [nil, v]
|
180
|
-
h
|
181
|
-
end
|
182
|
-
end
|
183
|
-
|
184
|
-
def history_tracker_attributes(method)
|
185
|
-
return @history_tracker_attributes if @history_tracker_attributes
|
186
|
-
|
187
|
-
@history_tracker_attributes = {
|
188
|
-
:association_chain => traverse_association_chain,
|
189
|
-
:scope => history_trackable_options[:scope],
|
190
|
-
:modifier => send("#{history_trackable_options[:modifier_field].to_s}_id_changed?".to_sym) ? send(history_trackable_options[:modifier_field]) : nil,
|
191
|
-
}
|
192
|
-
|
193
|
-
original, modified = transform_changes(case method
|
194
|
-
when :destroy then modified_attributes_for_destroy
|
195
|
-
when :create then modified_attributes_for_create
|
196
|
-
else modified_attributes_for_update
|
197
|
-
end)
|
198
|
-
|
199
|
-
@history_tracker_attributes[:original] = original
|
200
|
-
@history_tracker_attributes[:modified] = modified
|
201
|
-
@history_tracker_attributes
|
202
|
-
end
|
203
|
-
|
204
|
-
def track_update
|
205
|
-
return unless should_track_update?
|
206
|
-
current_version = (self.send(history_trackable_options[:version_field]) || 0 ) + 1
|
207
|
-
self.send("#{history_trackable_options[:version_field]}=", current_version)
|
208
|
-
|
209
|
-
track = Mongoid::Audit.tracker_class.create!(history_tracker_attributes(:update).merge(:version => current_version, :action => "update", :trackable => self))
|
210
|
-
|
211
|
-
self.send("#{history_trackable_options[:modifier_field]}=", track.modifier)
|
212
|
-
|
213
|
-
clear_memoization
|
214
|
-
end
|
215
|
-
|
216
|
-
def track_create
|
217
|
-
return unless track_history?
|
218
|
-
current_version = (self.send(history_trackable_options[:version_field]) || 0 ) + 1
|
219
|
-
self.send("#{history_trackable_options[:version_field]}=", current_version)
|
220
|
-
|
221
|
-
track = Mongoid::Audit.tracker_class.create!(history_tracker_attributes(:create).merge(:version => current_version, :action => "create", :trackable => self))
|
222
|
-
self.send("#{history_trackable_options[:modifier_field]}=", track.modifier)
|
223
|
-
|
224
|
-
clear_memoization
|
225
|
-
end
|
226
|
-
|
227
|
-
def track_destroy
|
228
|
-
return unless track_history?
|
229
|
-
current_version = (self.send(history_trackable_options[:version_field]) || 0 ) + 1
|
230
|
-
|
231
|
-
track = Mongoid::Audit.tracker_class.create!(history_tracker_attributes(:destroy).merge(:version => current_version, :action => "destroy", :trackable => self))
|
232
|
-
self.send("#{history_trackable_options[:modifier_field]}=", track.modifier)
|
233
|
-
|
234
|
-
clear_memoization
|
235
|
-
end
|
236
|
-
|
237
|
-
def clear_memoization
|
238
|
-
@history_tracker_attributes = nil
|
239
|
-
@modified_attributes_for_create = nil
|
240
|
-
@modified_attributes_for_update = nil
|
241
|
-
@history_tracks = nil
|
242
|
-
end
|
243
|
-
|
244
|
-
def transform_changes(changes)
|
245
|
-
original = {}
|
246
|
-
modified = {}
|
247
|
-
changes.each_pair do |k, v|
|
248
|
-
o, m = v
|
249
|
-
original[k] = o unless o.nil?
|
250
|
-
modified[k] = m unless m.nil?
|
251
|
-
end
|
252
|
-
|
253
|
-
original.easy_diff modified
|
254
|
-
end
|
255
|
-
|
256
|
-
end
|
257
|
-
|
258
|
-
module SingletonMethods
|
259
|
-
def history_trackable_options
|
260
|
-
@history_trackable_options ||= Mongoid::Audit.trackable_class_options[self.collection_name.to_s.singularize.to_sym]
|
261
|
-
end
|
262
|
-
end
|
1
|
+
module Trackable
|
2
|
+
extend ActiveSupport::Concern
|
3
|
+
include Mongoid::History::Trackable
|
4
|
+
included do
|
5
|
+
track_history({
|
6
|
+
track_create: true,
|
7
|
+
track_destroy: true,
|
8
|
+
track_update: true,
|
9
|
+
modifier_field: :updater,
|
10
|
+
except: ["created_at", "updated_at", "c_at", "u_at"],
|
11
|
+
})
|
263
12
|
end
|
264
13
|
end
|
14
|
+
|
data/mongoid-audit.gemspec
CHANGED
@@ -17,14 +17,13 @@ Gem::Specification.new do |gem|
|
|
17
17
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
18
|
gem.require_paths = ["lib"]
|
19
19
|
|
20
|
-
gem.add_dependency '
|
21
|
-
gem.add_dependency 'mongoid', '~>
|
22
|
-
gem.add_dependency '
|
20
|
+
gem.add_dependency 'mongoid', '~> 4.0.0'
|
21
|
+
gem.add_dependency 'mongoid-history', '~> 0.4.4'
|
22
|
+
gem.add_dependency 'activesupport'
|
23
|
+
gem.add_dependency 'kaminari'
|
24
|
+
gem.add_dependency 'glebtv_mongoid_userstamp'
|
23
25
|
|
24
|
-
gem.add_development_dependency "bundler"
|
26
|
+
gem.add_development_dependency "bundler"
|
25
27
|
gem.add_development_dependency "rake"
|
26
|
-
gem.add_development_dependency "rspec"
|
27
|
-
gem.add_development_dependency "database_cleaner"
|
28
|
-
gem.add_development_dependency "coveralls"
|
29
|
-
gem.add_development_dependency "activesupport", '~> 4.0.0'
|
30
28
|
end
|
29
|
+
|
metadata
CHANGED
@@ -1,141 +1,113 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongoid-audit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0.alpha.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gleb Tv
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-08-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: easy_diff
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ~>
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: 0.0.2
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ~>
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: 0.0.2
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: mongoid
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
30
16
|
requirements:
|
31
|
-
- - ~>
|
17
|
+
- - "~>"
|
32
18
|
- !ruby/object:Gem::Version
|
33
|
-
version: 4.0.0
|
19
|
+
version: 4.0.0
|
34
20
|
type: :runtime
|
35
21
|
prerelease: false
|
36
22
|
version_requirements: !ruby/object:Gem::Requirement
|
37
23
|
requirements:
|
38
|
-
- - ~>
|
24
|
+
- - "~>"
|
39
25
|
- !ruby/object:Gem::Version
|
40
|
-
version: 4.0.0
|
26
|
+
version: 4.0.0
|
41
27
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
28
|
+
name: mongoid-history
|
43
29
|
requirement: !ruby/object:Gem::Requirement
|
44
30
|
requirements:
|
45
|
-
- - ~>
|
31
|
+
- - "~>"
|
46
32
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0.
|
33
|
+
version: 0.4.4
|
48
34
|
type: :runtime
|
49
35
|
prerelease: false
|
50
36
|
version_requirements: !ruby/object:Gem::Requirement
|
51
37
|
requirements:
|
52
|
-
- - ~>
|
38
|
+
- - "~>"
|
53
39
|
- !ruby/object:Gem::Version
|
54
|
-
version: 0.
|
40
|
+
version: 0.4.4
|
55
41
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ~>
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '1.3'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - ~>
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '1.3'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: rake
|
42
|
+
name: activesupport
|
71
43
|
requirement: !ruby/object:Gem::Requirement
|
72
44
|
requirements:
|
73
|
-
- -
|
45
|
+
- - ">="
|
74
46
|
- !ruby/object:Gem::Version
|
75
47
|
version: '0'
|
76
|
-
type: :
|
48
|
+
type: :runtime
|
77
49
|
prerelease: false
|
78
50
|
version_requirements: !ruby/object:Gem::Requirement
|
79
51
|
requirements:
|
80
|
-
- -
|
52
|
+
- - ">="
|
81
53
|
- !ruby/object:Gem::Version
|
82
54
|
version: '0'
|
83
55
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
56
|
+
name: kaminari
|
85
57
|
requirement: !ruby/object:Gem::Requirement
|
86
58
|
requirements:
|
87
|
-
- -
|
59
|
+
- - ">="
|
88
60
|
- !ruby/object:Gem::Version
|
89
61
|
version: '0'
|
90
|
-
type: :
|
62
|
+
type: :runtime
|
91
63
|
prerelease: false
|
92
64
|
version_requirements: !ruby/object:Gem::Requirement
|
93
65
|
requirements:
|
94
|
-
- -
|
66
|
+
- - ">="
|
95
67
|
- !ruby/object:Gem::Version
|
96
68
|
version: '0'
|
97
69
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
70
|
+
name: glebtv_mongoid_userstamp
|
99
71
|
requirement: !ruby/object:Gem::Requirement
|
100
72
|
requirements:
|
101
|
-
- -
|
73
|
+
- - ">="
|
102
74
|
- !ruby/object:Gem::Version
|
103
75
|
version: '0'
|
104
|
-
type: :
|
76
|
+
type: :runtime
|
105
77
|
prerelease: false
|
106
78
|
version_requirements: !ruby/object:Gem::Requirement
|
107
79
|
requirements:
|
108
|
-
- -
|
80
|
+
- - ">="
|
109
81
|
- !ruby/object:Gem::Version
|
110
82
|
version: '0'
|
111
83
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
84
|
+
name: bundler
|
113
85
|
requirement: !ruby/object:Gem::Requirement
|
114
86
|
requirements:
|
115
|
-
- -
|
87
|
+
- - ">="
|
116
88
|
- !ruby/object:Gem::Version
|
117
89
|
version: '0'
|
118
90
|
type: :development
|
119
91
|
prerelease: false
|
120
92
|
version_requirements: !ruby/object:Gem::Requirement
|
121
93
|
requirements:
|
122
|
-
- -
|
94
|
+
- - ">="
|
123
95
|
- !ruby/object:Gem::Version
|
124
96
|
version: '0'
|
125
97
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
98
|
+
name: rake
|
127
99
|
requirement: !ruby/object:Gem::Requirement
|
128
100
|
requirements:
|
129
|
-
- -
|
101
|
+
- - ">="
|
130
102
|
- !ruby/object:Gem::Version
|
131
|
-
version:
|
103
|
+
version: '0'
|
132
104
|
type: :development
|
133
105
|
prerelease: false
|
134
106
|
version_requirements: !ruby/object:Gem::Requirement
|
135
107
|
requirements:
|
136
|
-
- -
|
108
|
+
- - ">="
|
137
109
|
- !ruby/object:Gem::Version
|
138
|
-
version:
|
110
|
+
version: '0'
|
139
111
|
description: Mongoid Audit
|
140
112
|
email:
|
141
113
|
- glebtv@gmail.com
|
@@ -143,33 +115,23 @@ executables: []
|
|
143
115
|
extensions: []
|
144
116
|
extra_rdoc_files: []
|
145
117
|
files:
|
146
|
-
- .
|
147
|
-
- .
|
148
|
-
- .
|
149
|
-
- .ruby-gemset
|
150
|
-
- .ruby-version
|
151
|
-
- .travis.yml
|
118
|
+
- ".gitignore"
|
119
|
+
- ".ruby-gemset"
|
120
|
+
- ".ruby-version"
|
152
121
|
- Gemfile
|
122
|
+
- Gemfile.lock
|
153
123
|
- LICENSE.txt
|
154
124
|
- README.md
|
155
125
|
- Rakefile
|
156
126
|
- config/mongoid.yml
|
157
127
|
- gemfiles/mongoid-4.0.gemfile
|
158
128
|
- lib/mongoid-audit.rb
|
159
|
-
- lib/mongoid-audit/
|
129
|
+
- lib/mongoid-audit/history_tracker.rb
|
160
130
|
- lib/mongoid-audit/rails_admin.rb
|
161
131
|
- lib/mongoid-audit/railtie.rb
|
162
|
-
- lib/mongoid-audit/sweeper.rb
|
163
132
|
- lib/mongoid-audit/trackable.rb
|
164
|
-
- lib/mongoid-audit/tracker.rb
|
165
133
|
- lib/mongoid-audit/version.rb
|
166
134
|
- mongoid-audit.gemspec
|
167
|
-
- spec/integration/integration_spec.rb
|
168
|
-
- spec/spec_helper.rb
|
169
|
-
- spec/support/database_cleaner.rb
|
170
|
-
- spec/support/mongoid.rb
|
171
|
-
- spec/trackable_spec.rb
|
172
|
-
- spec/tracker_spec.rb
|
173
135
|
homepage: https://github.com/rs-pro/mongoid-audit
|
174
136
|
licenses: []
|
175
137
|
metadata: {}
|
@@ -179,24 +141,18 @@ require_paths:
|
|
179
141
|
- lib
|
180
142
|
required_ruby_version: !ruby/object:Gem::Requirement
|
181
143
|
requirements:
|
182
|
-
- -
|
144
|
+
- - ">="
|
183
145
|
- !ruby/object:Gem::Version
|
184
146
|
version: '0'
|
185
147
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
186
148
|
requirements:
|
187
|
-
- -
|
149
|
+
- - ">"
|
188
150
|
- !ruby/object:Gem::Version
|
189
|
-
version:
|
151
|
+
version: 1.3.1
|
190
152
|
requirements: []
|
191
153
|
rubyforge_project:
|
192
|
-
rubygems_version: 2.
|
154
|
+
rubygems_version: 2.2.2
|
193
155
|
signing_key:
|
194
156
|
specification_version: 4
|
195
157
|
summary: Easily track model change history and mantain audit log with mongoid
|
196
|
-
test_files:
|
197
|
-
- spec/integration/integration_spec.rb
|
198
|
-
- spec/spec_helper.rb
|
199
|
-
- spec/support/database_cleaner.rb
|
200
|
-
- spec/support/mongoid.rb
|
201
|
-
- spec/trackable_spec.rb
|
202
|
-
- spec/tracker_spec.rb
|
158
|
+
test_files: []
|