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 CHANGED
@@ -1 +1,2 @@
1
+ .DS_Store
1
2
  test/*.db
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.2
1
+ 0.4.3
@@ -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: value
15
- when Numeric: find_by_number(value.floor)
16
- when Symbol: respond_to?(value) ? send(value) : nil
17
- when Date, Time: last(:conditions => ['versions.created_at <= ?', value.to_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: value.number
35
- when Numeric: value.floor
36
- when Symbol, Date, Time: at(value).try(:number)
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 ||= versions.maximum(:number)
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)
@@ -44,12 +44,12 @@ class CreationTest < Test::Unit::TestCase
44
44
  end
45
45
 
46
46
  should 'increase by one' do
47
- assert_equal (@initial_count + 1), @count
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 (@count + 1), @user.versions.count
52
+ assert_equal @count + 1, @user.versions.count
53
53
  end
54
54
 
55
55
  should 'not increase until a revert is saved' do
@@ -1,5 +1,5 @@
1
1
  ActiveRecord::Base.establish_connection(
2
- :adapter => 'sqlite3',
2
+ :adapter => defined?(RUBY_ENGINE) && RUBY_ENGINE == 'jruby' ? 'jdbcsqlite3' : 'sqlite3',
3
3
  :database => File.join(File.dirname(__FILE__), 'test.db')
4
4
  )
5
5
 
@@ -1,5 +1,5 @@
1
1
  $: << File.join(File.dirname(__FILE__), '..', 'lib')
2
- $: << File.join(File.dirname(__FILE__))
2
+ $: << File.dirname(__FILE__)
3
3
 
4
4
  require 'rubygems'
5
5
  require 'test/unit'
@@ -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.2"
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-13}
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.2
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-13 00:00:00 -07:00
12
+ date: 2009-08-31 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency