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 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