laserlemon-vestal_versions 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1 @@
1
+ test/*.db
File without changes
data/Rakefile CHANGED
@@ -1,14 +1,34 @@
1
1
  require 'rubygems'
2
2
  require 'rake'
3
- require 'echoe'
4
-
5
- Echoe.new('vestal_versions', '0.4.1') do |g|
6
- g.description = %(Keep a DRY history of your ActiveRecord models' changes)
7
- g.url = 'http://github.com/laserlemon/vestal_versions'
8
- g.author = 'Steve Richert'
9
- g.email = 'steve@laserlemon.com'
10
- g.ignore_pattern = %w(tmp/* script/*)
11
- g.development_dependencies = []
3
+ require 'rake/testtask'
4
+ require 'rake/rdoctask'
5
+
6
+ begin
7
+ require 'jeweler'
8
+ Jeweler::Tasks.new do |g|
9
+ g.name = 'vestal_versions'
10
+ g.summary = %(Keep a DRY history of your ActiveRecord models' changes)
11
+ g.description = %(Keep a DRY history of your ActiveRecord models' changes)
12
+ g.email = 'steve@laserlemon.com'
13
+ g.homepage = 'http://github.com/laserlemon/vestal_versions'
14
+ g.authors = %w(laserlemon)
15
+ g.add_development_dependency 'thoughtbot-shoulda'
16
+ end
17
+ rescue LoadError
18
+ puts 'Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com'
19
+ end
20
+
21
+ Rake::TestTask.new do |t|
22
+ t.libs = %w(test)
23
+ t.pattern = 'test/**/*_test.rb'
12
24
  end
13
25
 
14
- Dir["#{File.dirname(__FILE__)}/tasks/*.rake"].sort.each{|t| load t }
26
+ task :default => :test
27
+
28
+ Rake::RDocTask.new do |r|
29
+ version = File.exist?('VERSION') ? File.read('VERSION') : nil
30
+ r.rdoc_dir = 'rdoc'
31
+ r.title = ['vestal_versions', version].compact.join(' ')
32
+ r.rdoc_files.include('README*')
33
+ r.rdoc_files.include('lib/**/*.rb')
34
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.4.2
@@ -6,7 +6,7 @@ class CreateVestalVersions < ActiveRecord::Migration
6
6
  t.integer :number
7
7
  t.datetime :created_at
8
8
  end
9
-
9
+
10
10
  change_table :versions do |t|
11
11
  t.index [:versioned_type, :versioned_id]
12
12
  t.index :number
@@ -17,4 +17,4 @@ class CreateVestalVersions < ActiveRecord::Migration
17
17
  def self.down
18
18
  drop_table :versions
19
19
  end
20
- end
20
+ end
@@ -1,10 +1,10 @@
1
- class VestalVersionsMigrationGenerator < Rails::Generator::Base
1
+ class VestalVersionsMigrationGenerator < Rails::Generator::Base
2
2
  def manifest
3
3
  record do |m|
4
4
  m.migration_template 'migration.rb', 'db/migrate'
5
5
  end
6
6
  end
7
-
7
+
8
8
  def file_name
9
9
  'create_vestal_versions'
10
10
  end
data/init.rb CHANGED
@@ -1 +1 @@
1
- require 'vestal_versions'
1
+ require 'vestal_versions'
data/lib/version.rb CHANGED
@@ -1,20 +1,13 @@
1
1
  class Version < ActiveRecord::Base
2
-
2
+ include Comparable
3
+
3
4
  belongs_to :versioned, :polymorphic => true
4
-
5
+
5
6
  serialize :changes, Hash
6
-
7
+
7
8
  alias_attribute :version, :number
8
-
9
+
9
10
  def <=>(other)
10
11
  number <=> other.number
11
12
  end
12
-
13
- def <(other)
14
- number < other.number
15
- end
16
-
17
- def >(other)
18
- number > other.number
19
- end
20
- end
13
+ end
@@ -5,19 +5,19 @@ module LaserLemon
5
5
  def self.included(base)
6
6
  base.extend ClassMethods
7
7
  end
8
-
8
+
9
9
  module ClassMethods
10
10
  def versioned
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.in_time_zone])
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])
18
18
  end
19
19
  end
20
-
20
+
21
21
  def between(from_value, to_value)
22
22
  from, to = number_at(from_value), number_at(to_value)
23
23
  return [] if from.nil? || to.nil? || (from == to)
@@ -26,75 +26,86 @@ module LaserLemon
26
26
  :order => "versions.number #{(from > to) ? 'DESC' : 'ASC'}"
27
27
  )
28
28
  end
29
-
29
+
30
30
  private
31
-
32
- def number_at(value)
33
- case value
34
- when Version: value.number
35
- when Numeric: value.floor
36
- when Symbol, Date, Time: at(value).try(:number)
31
+
32
+ def number_at(value)
33
+ case value
34
+ when Version: value.number
35
+ when Numeric: value.floor
36
+ when Symbol, Date, Time: at(value).try(:number)
37
+ end
37
38
  end
38
- end
39
39
  end
40
-
40
+
41
41
  after_save :create_version, :if => :needs_version?
42
-
42
+
43
43
  include InstanceMethods
44
44
  end
45
45
  end
46
-
46
+
47
47
  module InstanceMethods
48
48
  private
49
-
50
- def needs_version?
51
- !changed.empty?
52
- end
53
-
54
- def create_version
55
- if versions.empty?
56
- versions.create(:changes => attributes, :number => 1)
57
- else
58
- @version = nil
59
- versions.create(:changes => changes, :number => (version.to_i + 1))
49
+
50
+ def needs_version?
51
+ !changed.empty?
60
52
  end
61
-
62
- @version = nil
63
- end
64
-
53
+
54
+ def reset_version(new_version = nil)
55
+ @version = new_version
56
+ end
57
+
58
+ def create_version
59
+ if versions.empty?
60
+ versions.create(:changes => attributes, :number => 1)
61
+ else
62
+ reset_version
63
+ versions.create(:changes => changes, :number => (version.to_i + 1))
64
+ end
65
+
66
+ reset_version
67
+ end
68
+
65
69
  public
66
-
67
- def version
68
- @version ||= versions.maximum(:number)
69
- end
70
-
71
- def revert_to(value)
72
- chain = versions.between(version, value)
73
- return version unless chain.size > 1
74
-
75
- new_version, backward = chain.last.number, (chain.first > chain.last)
76
- backward ? chain.pop : chain.shift
77
-
78
- chain.each do |version|
79
- version.changes.except('updated_at', 'updated_on').each do |attribute, change|
80
- write_attribute(attribute, backward ? change.first : change.last)
70
+
71
+ def version
72
+ @version ||= versions.maximum(:number)
73
+ end
74
+
75
+ def revert_to(value)
76
+ chain = versions.between(version, value)
77
+ return version unless chain.size > 1
78
+
79
+ new_version = chain.last.number
80
+ backward = chain.first > chain.last
81
+ backward ? chain.pop : chain.shift
82
+
83
+ timestamps = %w(created_at created_on updated_at updated_on)
84
+
85
+ chain.each do |version|
86
+ version.changes.except(*timestamps).each do |attribute, change|
87
+ new_value = backward ? change.first : change.last
88
+ write_attribute(attribute, new_value)
89
+ end
81
90
  end
91
+
92
+ reset_version(new_version)
93
+ end
94
+
95
+ def revert_to!(value)
96
+ revert_to(value)
97
+ reset_version if saved = save
98
+ saved
99
+ end
100
+
101
+ def last_changes
102
+ return {} if version == 1
103
+ versions.at(version).changes
104
+ end
105
+
106
+ def last_changed
107
+ last_changes.keys
82
108
  end
83
-
84
- @version = new_version
85
- end
86
-
87
- def revert_to!(value)
88
- revert_to(value) && save
89
- end
90
-
91
- def last_changes
92
- versions.at(version).changes
93
- end
94
-
95
- def last_changed
96
- last_changes.keys
97
- end
98
109
  end
99
110
  end
100
111
  end
@@ -0,0 +1,35 @@
1
+ require 'test_helper'
2
+
3
+ class ChangesTest < Test::Unit::TestCase
4
+ context "A version's changes" do
5
+ setup do
6
+ @user = User.create(:name => 'Steve Richert')
7
+ end
8
+
9
+ should "initially equal its parent's attributes" do
10
+ assert_equal @user.attributes, @user.versions.first.changes
11
+ end
12
+
13
+ should 'contain all changed attributes' do
14
+ @user.name = 'Steve Jobs'
15
+ changes = @user.changes
16
+ @user.save
17
+ assert_equal changes, @user.versions.last.changes.slice(*changes.keys)
18
+ end
19
+
20
+ should 'contain timestamp changes when applicable' do
21
+ timestamp = 'updated_at'
22
+ @user.update_attribute(:name, 'Steve Jobs')
23
+ assert @user.class.content_columns.map(&:name).include?(timestamp)
24
+ assert_contains @user.versions.last.changes.keys, timestamp
25
+ end
26
+
27
+ should 'contain no more than the changed attributes and timestamps' do
28
+ timestamps = %w(created_at created_on updated_at updated_on)
29
+ @user.name = 'Steve Jobs'
30
+ changes = @user.changes
31
+ @user.save
32
+ assert_equal changes, @user.versions.last.changes.except(*timestamps)
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,35 @@
1
+ require 'test_helper'
2
+
3
+ class ComparableTest < Test::Unit::TestCase
4
+ context 'A comparable version' do
5
+ setup do
6
+ @version_1 = Version.new(:number => 1)
7
+ @version_2 = Version.new(:number => 2)
8
+ end
9
+
10
+ should 'equal itself' do
11
+ assert @version_1 == @version_1
12
+ assert @version_2 == @version_2
13
+ end
14
+
15
+ context 'with version number 1' do
16
+ should 'not equal a version with version number 2' do
17
+ assert @version_1 != @version_2
18
+ end
19
+
20
+ should 'be less than a version with version number 2' do
21
+ assert @version_1 < @version_2
22
+ end
23
+ end
24
+
25
+ context 'with version number 2' do
26
+ should 'not equal a version with version number 1' do
27
+ assert @version_2 != @version_1
28
+ end
29
+
30
+ should 'be greater than a version with version number 1' do
31
+ assert @version_2 > @version_1
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,78 @@
1
+ require 'test_helper'
2
+
3
+ class CreationTest < Test::Unit::TestCase
4
+ context 'The number of versions' do
5
+ setup do
6
+ @name = 'Steve Richert'
7
+ @user = User.create(:name => @name)
8
+ @count = @user.versions.count
9
+ end
10
+
11
+ should 'initially equal one' do
12
+ assert_equal 1, @count
13
+ end
14
+
15
+ should 'not increase when no changes are made in an update' do
16
+ @user.update_attribute(:name, @name)
17
+ assert_equal @count, @user.versions.count
18
+ end
19
+
20
+ should 'not increase when no changes are made before a save' do
21
+ @user.save
22
+ assert_equal @count, @user.versions.count
23
+ end
24
+
25
+ should 'not increase when reverting to the current version' do
26
+ @user.revert_to!(@user.version)
27
+ assert_equal @count, @user.versions.count
28
+ end
29
+
30
+ should 'not increase when reverting to an identical version' do
31
+ @user.update_attribute(:name, 'Steve Jobs')
32
+ @user.update_attribute(:name, @name)
33
+ count = @user.versions.count
34
+ @user.revert_to!(:first)
35
+ assert_equal count, @user.versions.count
36
+ end
37
+
38
+ context 'after an update' do
39
+ setup do
40
+ @initial_count = @count
41
+ @name = 'Steve Jobs'
42
+ @user.update_attribute(:name, @name)
43
+ @count = @user.versions.count
44
+ end
45
+
46
+ should 'increase by one' do
47
+ assert_equal (@initial_count + 1), @count
48
+ end
49
+
50
+ should 'increase by one when reverted' do
51
+ @user.revert_to!(:first)
52
+ assert_equal (@count + 1), @user.versions.count
53
+ end
54
+
55
+ should 'not increase until a revert is saved' do
56
+ @user.revert_to(:first)
57
+ assert_equal @count, @user.versions.count
58
+ @user.save
59
+ assert_not_equal @count, @user.versions.count
60
+ end
61
+ end
62
+
63
+ context 'after multiple updates' do
64
+ setup do
65
+ @initial_count = @count
66
+ @new_name = 'Steve Jobs'
67
+ @user.update_attribute(:name, @new_name)
68
+ @user.update_attribute(:name, @name)
69
+ @count = @user.versions.count
70
+ end
71
+
72
+ should 'not increase when reverting to an identical version' do
73
+ @user.revert_to!(:first)
74
+ assert_equal @count, @user.versions.count
75
+ end
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,47 @@
1
+ require 'test_helper'
2
+
3
+ class LastChangesTest < Test::Unit::TestCase
4
+ context "A created model's last changes" do
5
+ setup do
6
+ @user = User.create(:name => 'Steve Richert')
7
+ end
8
+
9
+ should 'be blank' do
10
+ assert @user.last_changes.blank?
11
+ assert @user.last_changed.blank?
12
+ end
13
+ end
14
+
15
+ context "An updated model's last changes" do
16
+ setup do
17
+ @user = User.create(:name => 'Steve Richert')
18
+ @previous_attributes = @user.attributes
19
+ @user.update_attribute(:name, 'Steve Jobs')
20
+ @current_attributes = @user.attributes
21
+ end
22
+
23
+ should 'have keys matching its last changed attributes' do
24
+ assert_equal @user.last_changes.keys, @user.last_changed
25
+ end
26
+
27
+ should 'values of two-element arrays with unique values' do
28
+ @user.last_changes.values.each do |value|
29
+ assert_kind_of Array, value
30
+ assert_equal 2, value.size
31
+ assert_equal value, value.uniq
32
+ end
33
+ end
34
+
35
+ should 'begin with the previous attribute values' do
36
+ changes = @user.last_changes.inject({}){|h,(k,v)| h.update(k => v.first) }
37
+ previous = @previous_attributes.slice(*@user.last_changed)
38
+ assert_equal previous, changes
39
+ end
40
+
41
+ should 'end with the current attribute values' do
42
+ changes = @user.last_changes.inject({}){|h,(k,v)| h.update(k => v.last) }
43
+ current = @current_attributes.slice(*@user.last_changed)
44
+ assert_equal current, changes
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,80 @@
1
+ require 'test_helper'
2
+
3
+ class RevertTest < Test::Unit::TestCase
4
+ context 'A model reversion' do
5
+ setup do
6
+ @user, @attributes, @times = User.new, {}, {}
7
+ names = ['Steve Richert', 'Stephen Richert', 'Stephen Jobs', 'Steve Jobs']
8
+ time = names.size.hours.ago
9
+ names.each do |name|
10
+ @user.update_attribute(:name, name)
11
+ @attributes[@user.version] = @user.attributes
12
+ time += 1.hour
13
+ @user.versions.last.update_attribute(:created_at, time)
14
+ @times[@user.version] = time
15
+ end
16
+ @user.reload.versions.reload
17
+ @first_version, @last_version = @attributes.keys.min, @attributes.keys.max
18
+ end
19
+
20
+ should 'do nothing for a non-existent version' do
21
+ attributes = @user.attributes
22
+ @user.revert_to!(nil)
23
+ assert_equal attributes, @user.attributes
24
+ end
25
+
26
+ should 'return the new version number' do
27
+ new_version = @user.revert_to(@first_version)
28
+ assert_equal @first_version, new_version
29
+ end
30
+
31
+ should 'change the version number when saved' do
32
+ current_version = @user.version
33
+ @user.revert_to!(@first_version)
34
+ assert_not_equal current_version, @user.version
35
+ end
36
+
37
+ should 'be able to target the first version' do
38
+ @user.revert_to(:first)
39
+ assert_equal @first_version, @user.version
40
+ end
41
+
42
+ should 'be able to target the last version' do
43
+ @user.revert_to(:last)
44
+ assert_equal @last_version, @user.version
45
+ end
46
+
47
+ should 'do nothing for a non-existent method name' do
48
+ current_version = @user.version
49
+ @user.revert_to(:bogus)
50
+ assert_equal current_version, @user.version
51
+ end
52
+
53
+ should 'be able to target a version number' do
54
+ @user.revert_to(1)
55
+ assert 1, @user.version
56
+ end
57
+
58
+ should 'be able to target a date and time' do
59
+ @times.each do |version, time|
60
+ @user.revert_to(time + 1.second)
61
+ assert_equal version, @user.version
62
+ end
63
+ end
64
+
65
+ should 'be able to target a version object' do
66
+ @user.versions.each do |version|
67
+ @user.revert_to(version)
68
+ assert_equal version.number, @user.version
69
+ end
70
+ end
71
+
72
+ should "correctly roll back the model's attributes" do
73
+ timestamps = %w(created_at created_on updated_at updated_on)
74
+ @attributes.each do |version, attributes|
75
+ @user.revert_to!(version)
76
+ assert_equal attributes.except(*timestamps), @user.attributes.except(*timestamps)
77
+ end
78
+ end
79
+ end
80
+ end
data/test/schema.rb ADDED
@@ -0,0 +1,37 @@
1
+ ActiveRecord::Base.establish_connection(
2
+ :adapter => 'sqlite3',
3
+ :database => File.join(File.dirname(__FILE__), 'test.db')
4
+ )
5
+
6
+ class CreateSchema < ActiveRecord::Migration
7
+ def self.up
8
+ create_table :users, :force => true do |t|
9
+ t.string :first_name
10
+ t.string :last_name
11
+ t.timestamps
12
+ end
13
+
14
+ create_table :versions, :force => true do |t|
15
+ t.belongs_to :versioned, :polymorphic => true
16
+ t.text :changes
17
+ t.integer :number
18
+ t.datetime :created_at
19
+ end
20
+ end
21
+ end
22
+
23
+ CreateSchema.suppress_messages do
24
+ CreateSchema.migrate(:up)
25
+ end
26
+
27
+ class User < ActiveRecord::Base
28
+ versioned
29
+
30
+ def name
31
+ [first_name, last_name].compact.join(' ')
32
+ end
33
+
34
+ def name=(names)
35
+ self[:first_name], self[:last_name] = names.split(' ', 2)
36
+ end
37
+ end
data/test/test_helper.rb CHANGED
@@ -1,3 +1,10 @@
1
+ $: << File.join(File.dirname(__FILE__), '..', 'lib')
2
+ $: << File.join(File.dirname(__FILE__))
3
+
1
4
  require 'rubygems'
2
- require 'active_support'
3
- require 'active_support/test_case'
5
+ require 'test/unit'
6
+ require 'activerecord'
7
+ require 'shoulda'
8
+ require 'vestal_versions'
9
+ require 'schema'
10
+ begin; require 'redgreen'; rescue LoadError; end
@@ -1,31 +1,66 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
1
4
  # -*- encoding: utf-8 -*-
2
5
 
3
6
  Gem::Specification.new do |s|
4
7
  s.name = %q{vestal_versions}
5
- s.version = "0.4.1"
8
+ s.version = "0.4.2"
6
9
 
7
- s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
- s.authors = ["Steve Richert"]
9
- s.date = %q{2009-08-12}
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["laserlemon"]
12
+ s.date = %q{2009-08-13}
10
13
  s.description = %q{Keep a DRY history of your ActiveRecord models' changes}
11
14
  s.email = %q{steve@laserlemon.com}
12
- s.extra_rdoc_files = ["lib/version.rb", "lib/vestal_versions.rb", "README.rdoc", "tasks/vestal_versions_tasks.rake"]
13
- s.files = ["generators/vestal_versions_migration/templates/migration.rb", "generators/vestal_versions_migration/vestal_versions_migration_generator.rb", "init.rb", "lib/version.rb", "lib/vestal_versions.rb", "Manifest", "MIT-LICENSE", "Rakefile", "README.rdoc", "tasks/vestal_versions_tasks.rake", "test/test_helper.rb", "test/vestal_versions_test.rb", "VERSION.yml", "vestal_versions.gemspec"]
15
+ s.extra_rdoc_files = [
16
+ "LICENSE",
17
+ "README.rdoc"
18
+ ]
19
+ s.files = [
20
+ ".gitignore",
21
+ "LICENSE",
22
+ "README.rdoc",
23
+ "Rakefile",
24
+ "VERSION",
25
+ "generators/vestal_versions_migration/templates/migration.rb",
26
+ "generators/vestal_versions_migration/vestal_versions_migration_generator.rb",
27
+ "init.rb",
28
+ "lib/version.rb",
29
+ "lib/vestal_versions.rb",
30
+ "test/changes_test.rb",
31
+ "test/comparable_test.rb",
32
+ "test/creation_test.rb",
33
+ "test/last_changes_test.rb",
34
+ "test/revert_test.rb",
35
+ "test/schema.rb",
36
+ "test/test_helper.rb",
37
+ "vestal_versions.gemspec"
38
+ ]
14
39
  s.homepage = %q{http://github.com/laserlemon/vestal_versions}
15
- s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Vestal_versions", "--main", "README.rdoc"]
40
+ s.rdoc_options = ["--charset=UTF-8"]
16
41
  s.require_paths = ["lib"]
17
- s.rubyforge_project = %q{vestal_versions}
18
42
  s.rubygems_version = %q{1.3.5}
19
43
  s.summary = %q{Keep a DRY history of your ActiveRecord models' changes}
20
- s.test_files = ["test/test_helper.rb", "test/vestal_versions_test.rb"]
44
+ s.test_files = [
45
+ "test/changes_test.rb",
46
+ "test/comparable_test.rb",
47
+ "test/creation_test.rb",
48
+ "test/last_changes_test.rb",
49
+ "test/revert_test.rb",
50
+ "test/schema.rb",
51
+ "test/test_helper.rb"
52
+ ]
21
53
 
22
54
  if s.respond_to? :specification_version then
23
55
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
24
56
  s.specification_version = 3
25
57
 
26
58
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
59
+ s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
27
60
  else
61
+ s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
28
62
  end
29
63
  else
64
+ s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
30
65
  end
31
66
  end
metadata CHANGED
@@ -1,18 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: laserlemon-vestal_versions
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
- - Steve Richert
7
+ - laserlemon
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-08-12 00:00:00 -07:00
12
+ date: 2009-08-13 00:00:00 -07:00
13
13
  default_executable:
14
- dependencies: []
15
-
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: thoughtbot-shoulda
17
+ type: :development
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ version:
16
25
  description: Keep a DRY history of your ActiveRecord models' changes
17
26
  email: steve@laserlemon.com
18
27
  executables: []
@@ -20,36 +29,33 @@ executables: []
20
29
  extensions: []
21
30
 
22
31
  extra_rdoc_files:
23
- - lib/version.rb
24
- - lib/vestal_versions.rb
32
+ - LICENSE
25
33
  - README.rdoc
26
- - tasks/vestal_versions_tasks.rake
27
34
  files:
35
+ - .gitignore
36
+ - LICENSE
37
+ - README.rdoc
38
+ - Rakefile
39
+ - VERSION
28
40
  - generators/vestal_versions_migration/templates/migration.rb
29
41
  - generators/vestal_versions_migration/vestal_versions_migration_generator.rb
30
42
  - init.rb
31
43
  - lib/version.rb
32
44
  - lib/vestal_versions.rb
33
- - Manifest
34
- - MIT-LICENSE
35
- - Rakefile
36
- - README.rdoc
37
- - tasks/vestal_versions_tasks.rake
45
+ - test/changes_test.rb
46
+ - test/comparable_test.rb
47
+ - test/creation_test.rb
48
+ - test/last_changes_test.rb
49
+ - test/revert_test.rb
50
+ - test/schema.rb
38
51
  - test/test_helper.rb
39
- - test/vestal_versions_test.rb
40
- - VERSION.yml
41
52
  - vestal_versions.gemspec
42
53
  has_rdoc: false
43
54
  homepage: http://github.com/laserlemon/vestal_versions
44
55
  licenses:
45
56
  post_install_message:
46
57
  rdoc_options:
47
- - --line-numbers
48
- - --inline-source
49
- - --title
50
- - Vestal_versions
51
- - --main
52
- - README.rdoc
58
+ - --charset=UTF-8
53
59
  require_paths:
54
60
  - lib
55
61
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -62,15 +68,20 @@ required_rubygems_version: !ruby/object:Gem::Requirement
62
68
  requirements:
63
69
  - - ">="
64
70
  - !ruby/object:Gem::Version
65
- version: "1.2"
71
+ version: "0"
66
72
  version:
67
73
  requirements: []
68
74
 
69
- rubyforge_project: vestal_versions
75
+ rubyforge_project:
70
76
  rubygems_version: 1.3.5
71
77
  signing_key:
72
78
  specification_version: 3
73
79
  summary: Keep a DRY history of your ActiveRecord models' changes
74
80
  test_files:
81
+ - test/changes_test.rb
82
+ - test/comparable_test.rb
83
+ - test/creation_test.rb
84
+ - test/last_changes_test.rb
85
+ - test/revert_test.rb
86
+ - test/schema.rb
75
87
  - test/test_helper.rb
76
- - test/vestal_versions_test.rb
data/Manifest DELETED
@@ -1,14 +0,0 @@
1
- generators/vestal_versions_migration/templates/migration.rb
2
- generators/vestal_versions_migration/vestal_versions_migration_generator.rb
3
- init.rb
4
- lib/version.rb
5
- lib/vestal_versions.rb
6
- Manifest
7
- MIT-LICENSE
8
- Rakefile
9
- README.rdoc
10
- tasks/vestal_versions_tasks.rake
11
- test/test_helper.rb
12
- test/vestal_versions_test.rb
13
- VERSION.yml
14
- vestal_versions.gemspec
data/VERSION.yml DELETED
@@ -1,4 +0,0 @@
1
- ---
2
- :major: 0
3
- :minor: 4
4
- :patch: 1
@@ -1,4 +0,0 @@
1
- # desc "Explaining what the task does"
2
- # task :vestal_versions do
3
- # # Task goes here
4
- # end
@@ -1,8 +0,0 @@
1
- require 'test_helper'
2
-
3
- class VestalVersionsTest < ActiveSupport::TestCase
4
- # Replace this with your real tests.
5
- test "the truth" do
6
- assert true
7
- end
8
- end