laserlemon-vestal_versions 0.4.2 → 0.4.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/.gitignore +1 -0
- data/VERSION +1 -1
- data/lib/vestal_versions.rb +23 -8
- data/test/creation_test.rb +2 -2
- data/test/schema.rb +1 -1
- data/test/test_helper.rb +1 -1
- data/vestal_versions.gemspec +2 -2
- metadata +2 -2
data/.gitignore
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.4.
|
1
|
+
0.4.3
|
data/lib/vestal_versions.rb
CHANGED
@@ -11,10 +11,10 @@ module LaserLemon
|
|
11
11
|
has_many :versions, :as => :versioned, :order => 'versions.number ASC', :dependent => :destroy do
|
12
12
|
def at(value)
|
13
13
|
case value
|
14
|
-
when Version
|
15
|
-
when Numeric
|
16
|
-
when Symbol
|
17
|
-
when Date, Time
|
14
|
+
when Version then value
|
15
|
+
when Numeric then find_by_number(value.floor)
|
16
|
+
when Symbol then respond_to?(value) ? send(value) : nil
|
17
|
+
when Date, Time then last(:conditions => ['versions.created_at <= ?', value.to_time])
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
@@ -31,9 +31,9 @@ module LaserLemon
|
|
31
31
|
|
32
32
|
def number_at(value)
|
33
33
|
case value
|
34
|
-
when Version
|
35
|
-
when Numeric
|
36
|
-
when Symbol, Date, Time
|
34
|
+
when Version then value.number
|
35
|
+
when Numeric then value.floor
|
36
|
+
when Symbol, Date, Time then at(value).try(:number)
|
37
37
|
end
|
38
38
|
end
|
39
39
|
end
|
@@ -41,6 +41,7 @@ module LaserLemon
|
|
41
41
|
after_save :create_version, :if => :needs_version?
|
42
42
|
|
43
43
|
include InstanceMethods
|
44
|
+
alias_method_chain :reload, :versions
|
44
45
|
end
|
45
46
|
end
|
46
47
|
|
@@ -52,6 +53,7 @@ module LaserLemon
|
|
52
53
|
end
|
53
54
|
|
54
55
|
def reset_version(new_version = nil)
|
56
|
+
@last_version = nil if new_version.nil?
|
55
57
|
@version = new_version
|
56
58
|
end
|
57
59
|
|
@@ -69,7 +71,20 @@ module LaserLemon
|
|
69
71
|
public
|
70
72
|
|
71
73
|
def version
|
72
|
-
@version ||=
|
74
|
+
@version ||= last_version
|
75
|
+
end
|
76
|
+
|
77
|
+
def last_version
|
78
|
+
@last_version ||= versions.maximum(:number)
|
79
|
+
end
|
80
|
+
|
81
|
+
def reverted?
|
82
|
+
version != last_version
|
83
|
+
end
|
84
|
+
|
85
|
+
def reload_with_versions(*args)
|
86
|
+
reset_version
|
87
|
+
reload_without_versions(*args)
|
73
88
|
end
|
74
89
|
|
75
90
|
def revert_to(value)
|
data/test/creation_test.rb
CHANGED
@@ -44,12 +44,12 @@ class CreationTest < Test::Unit::TestCase
|
|
44
44
|
end
|
45
45
|
|
46
46
|
should 'increase by one' do
|
47
|
-
assert_equal
|
47
|
+
assert_equal @initial_count + 1, @count
|
48
48
|
end
|
49
49
|
|
50
50
|
should 'increase by one when reverted' do
|
51
51
|
@user.revert_to!(:first)
|
52
|
-
assert_equal
|
52
|
+
assert_equal @count + 1, @user.versions.count
|
53
53
|
end
|
54
54
|
|
55
55
|
should 'not increase until a revert is saved' do
|
data/test/schema.rb
CHANGED
data/test/test_helper.rb
CHANGED
data/vestal_versions.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{vestal_versions}
|
8
|
-
s.version = "0.4.
|
8
|
+
s.version = "0.4.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["laserlemon"]
|
12
|
-
s.date = %q{2009-08-
|
12
|
+
s.date = %q{2009-08-31}
|
13
13
|
s.description = %q{Keep a DRY history of your ActiveRecord models' changes}
|
14
14
|
s.email = %q{steve@laserlemon.com}
|
15
15
|
s.extra_rdoc_files = [
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: laserlemon-vestal_versions
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- laserlemon
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-08-
|
12
|
+
date: 2009-08-31 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|