paper_trail 2.2.2 → 2.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.
- data/README.md +2 -0
- data/lib/paper_trail/has_paper_trail.rb +2 -2
- data/lib/paper_trail/version.rb +3 -3
- data/lib/paper_trail/version_number.rb +1 -1
- data/test/unit/model_test.rb +10 -10
- metadata +4 -4
data/README.md
CHANGED
@@ -603,6 +603,8 @@ Many thanks to:
|
|
603
603
|
* [Tom Derks](https://github.com/EgoH)
|
604
604
|
* [Jonas Hoglund](https://github.com/jhoglund)
|
605
605
|
* [Stefan Huber](https://github.com/MSNexploder)
|
606
|
+
* [thinkcast](https://github.com/thinkcast)
|
607
|
+
* [Dominik Sander](https://github.com/dsander)
|
606
608
|
|
607
609
|
|
608
610
|
## Inspirations
|
@@ -41,7 +41,7 @@ module PaperTrail
|
|
41
41
|
cattr_accessor :paper_trail_enabled_for_model
|
42
42
|
self.paper_trail_enabled_for_model = true
|
43
43
|
|
44
|
-
has_many :versions, :class_name => version_class_name, :as => :item, :order =>
|
44
|
+
has_many :versions, :class_name => version_class_name, :as => :item, :order => "created_at ASC, #{self.primary_key} ASC"
|
45
45
|
|
46
46
|
after_create :record_create
|
47
47
|
before_update :record_update
|
@@ -143,7 +143,7 @@ module PaperTrail
|
|
143
143
|
end
|
144
144
|
|
145
145
|
def item_before_change
|
146
|
-
self.
|
146
|
+
self.dup.tap do |previous|
|
147
147
|
previous.id = id
|
148
148
|
changed_attributes.each { |attr, before| previous[attr] = before }
|
149
149
|
end
|
data/lib/paper_trail/version.rb
CHANGED
@@ -7,16 +7,16 @@ class Version < ActiveRecord::Base
|
|
7
7
|
end
|
8
8
|
|
9
9
|
scope :subsequent, lambda { |version|
|
10
|
-
where(["
|
10
|
+
where(["#{self.primary_key} > ?", version.is_a?(self) ? version.id : version]).order("#{self.primary_key} ASC")
|
11
11
|
}
|
12
12
|
|
13
13
|
scope :preceding, lambda { |version|
|
14
|
-
where(["
|
14
|
+
where(["#{self.primary_key} < ?", version.is_a?(self) ? version.id : version]).order("#{self.primary_key} DESC")
|
15
15
|
}
|
16
16
|
|
17
17
|
scope :after, lambda { |timestamp|
|
18
18
|
# TODO: is this :order necessary, considering its presence on the has_many :versions association?
|
19
|
-
where(['created_at > ?', timestamp]).order(
|
19
|
+
where(['created_at > ?', timestamp]).order("created_at ASC, #{self.primary_key} ASC")
|
20
20
|
}
|
21
21
|
|
22
22
|
# Restore the item from this version.
|
data/test/unit/model_test.rb
CHANGED
@@ -212,11 +212,11 @@ class HasPaperTrailModelTest < ActiveSupport::TestCase
|
|
212
212
|
end
|
213
213
|
|
214
214
|
should 'handle datetimes' do
|
215
|
-
assert_equal @date_time.to_time.utc, @previous.a_datetime.to_time.utc
|
215
|
+
assert_equal @date_time.to_time.utc.to_i, @previous.a_datetime.to_time.utc.to_i
|
216
216
|
end
|
217
217
|
|
218
218
|
should 'handle times' do
|
219
|
-
assert_equal @time, @previous.a_time
|
219
|
+
assert_equal @time.utc.to_i, @previous.a_time.utc.to_i
|
220
220
|
end
|
221
221
|
|
222
222
|
should 'handle dates' do
|
@@ -241,14 +241,14 @@ class HasPaperTrailModelTest < ActiveSupport::TestCase
|
|
241
241
|
end
|
242
242
|
|
243
243
|
should 'restore all forward-compatible attributes' do
|
244
|
-
assert_equal 'Warble',
|
245
|
-
assert_equal 'The quick brown fox',
|
246
|
-
assert_equal 42,
|
247
|
-
assert_in_delta 153.01,
|
248
|
-
assert_in_delta 2.71828,
|
249
|
-
assert_equal @date_time.to_time.utc, @last.reify.a_datetime.to_time.utc
|
250
|
-
assert_equal @time,
|
251
|
-
assert_equal @date,
|
244
|
+
assert_equal 'Warble', @last.reify.name
|
245
|
+
assert_equal 'The quick brown fox', @last.reify.a_text
|
246
|
+
assert_equal 42, @last.reify.an_integer
|
247
|
+
assert_in_delta 153.01, @last.reify.a_float, 0.001
|
248
|
+
assert_in_delta 2.71828, @last.reify.a_decimal, 0.00001
|
249
|
+
assert_equal @date_time.to_time.utc.to_i, @last.reify.a_datetime.to_time.utc.to_i
|
250
|
+
assert_equal @time.utc.to_i, @last.reify.a_time.utc.to_i
|
251
|
+
assert_equal @date, @last.reify.a_date
|
252
252
|
assert @last.reify.a_boolean
|
253
253
|
end
|
254
254
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: paper_trail
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 1
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 2
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 2.2.
|
9
|
+
- 3
|
10
|
+
version: 2.2.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Andy Stewart
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-05-06 00:00:00 +01:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|