laserlemon-vestal_versions 0.4.2 → 0.4.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|