auditing 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -1,7 +1,7 @@
1
1
  source "http://rubygems.org"
2
2
 
3
3
  group :development, :test do
4
- gem 'rspec-rails', '~> 2.0.0.beta.20'
4
+ gem 'rspec', '~> 2.0'
5
5
  gem 'sqlite3-ruby', '~> 1.3'
6
6
  gem 'activerecord', '~> 3.0.0.rc2'
7
7
  end
data/Gemfile.lock CHANGED
@@ -24,8 +24,6 @@ GEM
24
24
  rspec-expectations (2.0.0.beta.20)
25
25
  diff-lcs (>= 1.1.2)
26
26
  rspec-mocks (2.0.0.beta.20)
27
- rspec-rails (2.0.0.beta.20)
28
- rspec (= 2.0.0.beta.20)
29
27
  sqlite3-ruby (1.3.1)
30
28
  tzinfo (0.3.23)
31
29
 
@@ -34,5 +32,5 @@ PLATFORMS
34
32
 
35
33
  DEPENDENCIES
36
34
  activerecord (~> 3.0.0.rc2)
37
- rspec-rails (~> 2.0.0.beta.20)
35
+ rspec (~> 2.0)
38
36
  sqlite3-ruby (~> 1.3)
data/README.rdoc CHANGED
@@ -1,4 +1,4 @@
1
- = auditing (currently in development)
1
+ = auditing
2
2
 
3
3
  Auditing is a simple way to track and rollback changes to a record.
4
4
 
@@ -23,6 +23,7 @@ You will have to supply a model named Audit in your rails application with the f
23
23
  end
24
24
 
25
25
  If you want to track the user, uncomment the t.integer :user_id above.
26
+
26
27
  TODO: more to follow about tracking the user
27
28
 
28
29
  class Audit < ActiveRecord::Base
@@ -70,8 +71,10 @@ to enable a similar type of auditing on the other model(s)
70
71
 
71
72
  As above, you can supply a :fields hash of which attributes will be logged.
72
73
  If your relationship is polymorphic, you can supply an array of classes
73
- that you :only want to log.
74
+ that you only want to log.
74
75
 
76
+ audit_relationship_enabled :only => [Company, Person]
77
+
75
78
  == Note on Patches/Pull Requests
76
79
 
77
80
  * Fork the project.
data/Rakefile CHANGED
@@ -10,7 +10,7 @@ begin
10
10
  gem.email = "brad.cantin@gmail.com"
11
11
  gem.homepage = "http://github.com/bcantin/auditing"
12
12
  gem.authors = ["Brad Cantin"]
13
- gem.add_development_dependency "rspec", ">= 1.2.9"
13
+ gem.add_development_dependency "rspec", ">= 2.0"
14
14
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
15
15
  end
16
16
  Jeweler::GemcutterTasks.new
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.0
1
+ 1.1.0
data/auditing.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{auditing}
8
- s.version = "1.0.0"
8
+ s.version = "1.1.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Brad Cantin"]
12
- s.date = %q{2010-10-09}
12
+ s.date = %q{2010-10-16}
13
13
  s.description = %q{acts_as_versioned is good. This allows an attribute level rollback instead}
14
14
  s.email = %q{brad.cantin@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -56,12 +56,12 @@ Gem::Specification.new do |s|
56
56
  s.specification_version = 3
57
57
 
58
58
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
59
- s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
59
+ s.add_development_dependency(%q<rspec>, [">= 2.0"])
60
60
  else
61
- s.add_dependency(%q<rspec>, [">= 1.2.9"])
61
+ s.add_dependency(%q<rspec>, [">= 2.0"])
62
62
  end
63
63
  else
64
- s.add_dependency(%q<rspec>, [">= 1.2.9"])
64
+ s.add_dependency(%q<rspec>, [">= 2.0"])
65
65
  end
66
66
  end
67
67
 
data/lib/auditing/base.rb CHANGED
@@ -60,8 +60,11 @@ module Auditing
60
60
  end
61
61
 
62
62
  def log_association_destroy(item)
63
+ mark_as_undoable = audits.where({:association_id => item.id, :association_type => item.class.to_s})
64
+ mark_as_undoable.each do |i|
65
+ i.update_attribute('undoable', false)
66
+ end
63
67
  add_audit(:action => 'removed', :association => item, :undoable => false)
64
- # TODO: update all of this items previous audits to be undoable
65
68
  end
66
69
 
67
70
  private
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe "AuditingRelationship" do
4
-
4
+
5
5
  describe "adding audit_relationship_enabled on a model" do
6
6
  before do
7
7
  class Company < ActiveRecord::Base
@@ -13,52 +13,145 @@ describe "AuditingRelationship" do
13
13
  audit_relationship_enabled
14
14
  end
15
15
  end
16
-
16
+
17
17
  it "should respond to audit_relationship_enabled when we add audit_relationship_enabled" do
18
18
  PhoneNumber.should respond_to(:audit_relationship_enabled)
19
19
  end
20
-
20
+
21
21
  it "should build an array of audit_enabled_models" do
22
22
  PhoneNumber.audit_enabled_models.should == [:phoneable]
23
23
  end
24
-
24
+
25
25
  it "should build an array of field_names" do
26
26
  PhoneNumber.field_names.should =~ ['number', 'extension']
27
27
  end
28
-
29
- describe "creating a new belongs_to object" do
28
+
29
+ describe "creating a new has_many object" do
30
30
  before do
31
31
  @company = Company.create(:name => 'Apple')
32
32
  end
33
-
34
33
  it "should add an audit to the parent instance object (company) when we create a phone number" do
35
34
  lambda {
36
35
  @company.phone_numbers << PhoneNumber.new(:number => '1-800-orange')
37
- }.should change{@company.audits.count}
36
+ }.should change{@company.audits.count}
38
37
  end
39
-
38
+
40
39
  it "should add an audit for each field" do
41
40
  lambda {
42
41
  @company.phone_numbers << PhoneNumber.new(:number => '1-800-orange', :extension => '1')
43
- }.should change{@company.audits.count}.by(2)
42
+ }.should change{@company.audits.count}.by(2)
44
43
  end
45
-
46
- describe "updating an existing belongs_to object" do
44
+
45
+ describe "updating an existing has_many object" do
47
46
  before do
48
47
  @ph = PhoneNumber.new(:number => '1-800-orange', :extension => '1')
49
48
  @company.phone_numbers << @ph
50
49
  end
51
-
52
50
  it "should add an audit to the parent instance when we update a phone number" do
53
- lambda {@ph.update_attributes(:number => '1-800-apple')}.should change{@company.audits.count}
51
+ lambda {@ph.update_attributes(:number => '1-800-apple')
52
+ }.should change{@company.audits.count}
54
53
  end
55
-
54
+
56
55
  describe "deleting a child_object" do
57
56
  it "should add an audit to the parent instance when we delete a phone number" do
58
57
  lambda {PhoneNumber.destroy(@ph)}.should change{@company.audits.count}
59
58
  end
59
+
60
+ it "should mark previous audits involving this has_many object so they can not be reversed" do
61
+ ph_id = @ph.id
62
+ ph_assoc = @ph.class.to_s
63
+
64
+ PhoneNumber.destroy(@ph)
65
+ ph_audits = @company.audits.where(
66
+ {:association_id => ph_id, :association_type => ph_assoc}
67
+ )
68
+ collection = ph_audits.collect(&:undoable)
69
+ collection.uniq.should == [false]
70
+ end
60
71
  end
61
72
  end
62
73
  end
63
74
  end
64
- end
75
+
76
+ describe "has_many :through" do
77
+ before do
78
+ class Company < ActiveRecord::Base
79
+ has_many :employments
80
+ has_many :people, :through => :employments
81
+ audit_enabled
82
+ end
83
+ class Person < ActiveRecord::Base
84
+ has_many :employments
85
+ has_many :companies, :through => :employments
86
+ audit_enabled
87
+ end
88
+ class Employment < ActiveRecord::Base
89
+ belongs_to :person
90
+ belongs_to :company
91
+ audit_relationship_enabled :fields => :start_date
92
+ end
93
+ @company = Company.create(:name => 'Apple')
94
+ @person = Person.create(:first_name => 'Steve')
95
+ end
96
+
97
+ it "adds an audit to the company" do
98
+ lambda {Employment.create(:person => @person,
99
+ :company => @company,
100
+ :start_date => 'yesterdayish')
101
+ }.should change{@company.audits.count}.by(1)
102
+ end
103
+ it "adds an audit to the person" do
104
+ lambda {Employment.create(:person => @person,
105
+ :company => @company,
106
+ :start_date => 'yesterdayish')
107
+ }.should change{@person.audits.count}.by(1)
108
+ end
109
+ it "increases the total audit count" do
110
+ lambda {Employment.create(:person => @person,
111
+ :company => @company,
112
+ :start_date => 'yesterdayish')
113
+ }.should change{Audit.count}.by(2)
114
+ end
115
+
116
+ describe "updating" do
117
+ before do
118
+ @emp = Employment.create(:person => @person,
119
+ :company => @company,
120
+ :start_date => 'yesterdayish')
121
+ end
122
+ it "increases the audit log for the company" do
123
+ lambda {@emp.update_attribute(:start_date, 'today')
124
+ }.should change{@company.audits.count}.by(1)
125
+ end
126
+ it "increases the audit log for the person" do
127
+ lambda {@emp.update_attribute(:start_date, 'today')
128
+ }.should change{@person.audits.count}.by(1)
129
+ end
130
+ it "increases the total audit count" do
131
+ lambda {@emp.update_attribute(:start_date, 'today')
132
+ }.should change{Audit.count}.by(2)
133
+ end
134
+ end
135
+
136
+ describe "deleting" do
137
+ before do
138
+ @emp = Employment.create(:person => @person,
139
+ :company => @company,
140
+ :start_date => 'yesterdayish')
141
+ end
142
+ it "increases the audit log for the company" do
143
+ lambda {Employment.destroy(@emp)
144
+ }.should change{@company.audits.count}.by(1)
145
+ end
146
+ it "increases the audit log for the person" do
147
+ lambda {Employment.destroy(@emp)
148
+ }.should change{@person.audits.count}.by(1)
149
+ end
150
+ it "increases the total audit count" do
151
+ lambda {Employment.destroy(@emp)
152
+ }.should change{Audit.count}.by(2)
153
+ end
154
+ end
155
+ end
156
+
157
+ end
@@ -4,7 +4,7 @@ describe "Auditor" do
4
4
  it 'adds the Auditing::Auditor module to the Audit class' do
5
5
  Audit.new.should respond_to(:show_action)
6
6
  end
7
-
7
+
8
8
  describe "#rollback" do
9
9
  before do
10
10
  class School < ActiveRecord::Base
@@ -14,24 +14,24 @@ describe "Auditor" do
14
14
  @school.update_attributes(:name => 'PS99')
15
15
  @audit = @school.audits.first
16
16
  end
17
-
17
+
18
18
  it "the latest audit should be the audit we want to rollback" do
19
19
  @audit.action.should == 'updated'
20
20
  @audit.new_value.should == 'PS99'
21
21
  @audit.old_value.should == 'PS118'
22
22
  @audit.association.should == nil
23
23
  end
24
-
24
+
25
25
  it "performs the rollback" do
26
26
  @audit.rollback
27
27
  @school.reload
28
28
  @school.name.should == 'PS118'
29
29
  end
30
-
30
+
31
31
  it "creates an audit when a rollback is performed" do
32
32
  lambda { @audit.rollback }.should change { Audit.count }.by(1)
33
33
  end
34
-
34
+
35
35
  it "the latest audit after a rollback should contain the changed values" do
36
36
  @audit.rollback
37
37
  @school.reload
@@ -39,7 +39,7 @@ describe "Auditor" do
39
39
  @school.audits.first.new_value.should == 'PS118'
40
40
  end
41
41
  end
42
-
42
+
43
43
  describe "#rollback belongs_to attribute" do
44
44
  before do
45
45
  class Car < ActiveRecord::Base
@@ -51,12 +51,12 @@ describe "Auditor" do
51
51
  end
52
52
  @automaker = AutoMaker.create(:name => 'maker of fast cars')
53
53
  @new_automaker = AutoMaker.create(:name => 'maker of safe cars')
54
-
54
+
55
55
  @car = Car.create(:name => 'fast car', :auto_maker => @automaker)
56
56
  @car.update_attributes(:auto_maker => @new_automaker)
57
57
  @audit = @car.audits.first
58
58
  end
59
-
59
+
60
60
  it "the latest audit should be the audit we want to rollback" do
61
61
  @audit.action.should == 'updated'
62
62
  @audit.new_value.should == @new_automaker.id
@@ -64,17 +64,17 @@ describe "Auditor" do
64
64
  @audit.association.should == nil
65
65
  @car.auto_maker.should == @new_automaker
66
66
  end
67
-
67
+
68
68
  it "performs the rollback" do
69
69
  @audit.rollback
70
70
  @car.reload
71
71
  @car.auto_maker.should == @automaker
72
72
  end
73
-
73
+
74
74
  it "creates an audit when a rollback is performed" do
75
75
  lambda { @audit.rollback }.should change { Audit.count }.by(1)
76
76
  end
77
-
77
+
78
78
  it "the latest audit after a rollback should contain the changed values" do
79
79
  @audit.rollback
80
80
  @car.reload
@@ -82,7 +82,7 @@ describe "Auditor" do
82
82
  @car.audits.first.new_value.should == @automaker.id
83
83
  end
84
84
  end
85
-
85
+
86
86
  describe "rollback has_many attributes" do
87
87
  before do
88
88
  class Company < ActiveRecord::Base
@@ -99,24 +99,24 @@ describe "Auditor" do
99
99
  @ph.update_attributes(:number => '1-800-call-apple')
100
100
  @audit = @company.audits.first
101
101
  end
102
-
102
+
103
103
  it "the latest audit should be the audit we want to rollback" do
104
104
  @audit.action.should == 'updated'
105
105
  @audit.new_value.should == '1-800-call-apple'
106
106
  @audit.old_value.should == '1-800-orange'
107
107
  @audit.association.should == @ph
108
108
  end
109
-
109
+
110
110
  it "performs the rollback" do
111
111
  @audit.rollback
112
112
  @company.reload
113
113
  @company.phone_numbers.first.number.should == '1-800-orange'
114
114
  end
115
-
115
+
116
116
  it "creates an audit when a rollback is performed" do
117
117
  lambda { @audit.rollback }.should change { Audit.count }.by(1)
118
118
  end
119
-
119
+
120
120
  it "the latest audit after a rollback should contain the changed values" do
121
121
  @audit.rollback
122
122
  @company.reload
@@ -124,4 +124,4 @@ describe "Auditor" do
124
124
  @company.audits.first.new_value.should == '1-800-orange'
125
125
  end
126
126
  end
127
- end
127
+ end
@@ -1,24 +1,25 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe "Auditing" do
4
-
4
+
5
5
  describe "auditing default values" do
6
6
  before do
7
7
  class School < ActiveRecord::Base
8
8
  audit_enabled
9
9
  end
10
10
  end
11
-
11
+
12
12
  it "responds to audit_enabled when auditing is added to an AR object" do
13
13
  School.should respond_to(:audit_enabled)
14
14
  end
15
-
15
+
16
16
  it "responds to @auditing_fields" do
17
17
  School.should respond_to(:auditing_fields)
18
18
  end
19
-
19
+
20
20
  it "has default values when no fields are passed in" do
21
- School.stub!(:column_names).and_return(["id", "name", "established_on", "created_at", "updated_at"])
21
+ School.stub!(:column_names).and_return(
22
+ ["id", "name", "established_on", "created_at", "updated_at"])
22
23
  School.gather_fields_for_auditing.should == ["name", "established_on"]
23
24
  end
24
25
  end # auditing default values
@@ -30,21 +31,21 @@ describe "Auditing" do
30
31
  end
31
32
  School.auditing_fields.should == ['name']
32
33
  end
33
-
34
+
34
35
  it "accepts a single value as a string" do
35
36
  class School < ActiveRecord::Base
36
37
  audit_enabled :fields => 'name'
37
38
  end
38
39
  School.auditing_fields.should == ['name']
39
40
  end
40
-
41
+
41
42
  it "accepts an array of symbols" do
42
43
  class School < ActiveRecord::Base
43
44
  audit_enabled :fields => [:name, :established_on]
44
45
  end
45
46
  School.auditing_fields.should == ['name', 'established_on']
46
47
  end
47
-
48
+
48
49
  it "accepts an array of strings" do
49
50
  class School < ActiveRecord::Base
50
51
  audit_enabled :fields => ['name', 'established_on']
@@ -52,7 +53,7 @@ describe "Auditing" do
52
53
  School.auditing_fields.should == ['name', 'established_on']
53
54
  end
54
55
  end # auditing :fields => [:foo,:bar]
55
-
56
+
56
57
  describe "creating a new instance" do
57
58
  before do
58
59
  class School < ActiveRecord::Base
@@ -63,23 +64,23 @@ describe "Auditing" do
63
64
  it "creates an audit" do
64
65
  lambda { School.create(:name => 'PS118') }.should change { Audit.count }.by(1)
65
66
  end
66
-
67
+
67
68
  it "the first audit has an action of 'created'" do
68
69
  school = School.create(:name => 'PS118')
69
70
  school.audits.first.action.should == 'created'
70
71
  end
71
-
72
+
72
73
  it "the first audit should not be reversable" do
73
74
  school = School.create(:name => 'PS118')
74
75
  school.audits.first.reversable?.should == false
75
76
  end
76
-
77
+
77
78
  it "the audit.auditable should be the object that created the audit" do
78
79
  school = School.create(:name => 'PS118')
79
80
  school.audits.first.auditable.should == school
80
81
  end
81
82
  end # creating a new instance
82
-
83
+
83
84
  describe "updating an existing record" do
84
85
  before do
85
86
  class School < ActiveRecord::Base
@@ -87,47 +88,50 @@ describe "Auditing" do
87
88
  end
88
89
  @school = School.create(:name => 'PS118')
89
90
  end
90
-
91
+
91
92
  it "creates an audit" do
92
- lambda { @school.update_attributes(:name => 'PS99') }.should change { Audit.count }.by(1)
93
+ lambda {@school.update_attributes(:name => 'PS99')
94
+ }.should change { Audit.count }.by(1)
93
95
  end
94
-
96
+
95
97
  it "the first audit has an action of 'updated" do
96
98
  @school.update_attributes(:name => 'PS99')
97
99
  @school.audits.first.action.should == 'updated'
98
100
  end
99
-
101
+
100
102
  it "the first audit should be reversable" do
101
103
  @school.update_attributes(:name => 'PS99')
102
104
  @school.audits.first.reversable?.should == true
103
105
  end
104
-
106
+
105
107
  it "the first audit stored the new value" do
106
108
  @school.update_attributes(:name => 'PS99')
107
109
  @school.audits.first.new_value.should == 'PS99'
108
110
  end
109
-
111
+
110
112
  it "the first audit stored the old value" do
111
113
  @school.update_attributes(:name => 'PS99')
112
114
  @school.audits.first.old_value.should == 'PS118'
113
115
  end
114
-
116
+
115
117
  it "the audit.auditable should be the object that created the audit" do
116
118
  @school.update_attributes(:name => 'PS99')
117
119
  @school.audits.first.auditable.should == @school
118
120
  end
119
-
121
+
120
122
  describe "does not create an audit when" do
121
123
  it "a value did not change" do
122
- lambda { @school.update_attributes(:name => 'PS118') }.should_not change { Audit.count }
124
+ lambda {@school.update_attributes(:name => 'PS118')
125
+ }.should_not change { Audit.count }
123
126
  end
124
-
127
+
125
128
  it "a value is not part of auditing_fields" do
126
- lambda { @school.update_attributes(:established_on => Time.now) }.should_not change { Audit.count }
129
+ lambda {@school.update_attributes(:established_on => Time.now)
130
+ }.should_not change { Audit.count }
127
131
  end
128
132
  end
129
133
  end # updating an existing record
130
-
134
+
131
135
  describe "belongs_to relationships" do
132
136
  before do
133
137
  class Car < ActiveRecord::Base
@@ -137,24 +141,25 @@ describe "Auditing" do
137
141
  class AutoMaker < ActiveRecord::Base
138
142
  has_many :cars
139
143
  end
140
-
144
+
141
145
  @car = Car.create(:name => 'fast car')
142
146
  @automaker = AutoMaker.create(:name => 'maker of fast cars')
143
147
  end
144
-
148
+
145
149
  it "creates an audit when we add a belongs_to relationship" do
146
- lambda { @car.update_attributes(:auto_maker => @automaker) }.should change { Audit.count }.by(1)
150
+ lambda {@car.update_attributes(:auto_maker => @automaker)
151
+ }.should change { Audit.count }.by(1)
147
152
  end
148
-
153
+
149
154
  describe "our latest audit" do
150
155
  before do
151
156
  @car.update_attributes(:auto_maker => @automaker)
152
157
  end
153
-
158
+
154
159
  it "the action should be 'updated" do
155
160
  @car.audits.first.action.should == 'updated'
156
161
  end
157
-
162
+
158
163
  it "new_value should be an id" do
159
164
  @car.audits.first.new_value.should == @automaker.id
160
165
  end
@@ -163,17 +168,18 @@ describe "Auditing" do
163
168
  @car.audits.first.reversable?.should == true
164
169
  end
165
170
  end
166
-
171
+
167
172
  describe "updating a belongs_to" do
168
173
  before do
169
174
  @new_automaker = AutoMaker.create(:name => 'maker of safe car')
170
175
  @car.update_attributes(:auto_maker => @automaker)
171
176
  end
172
-
177
+
173
178
  it "creates an audit when we change a belongs_to relationship" do
174
- lambda { @car.update_attributes(:auto_maker => @new_automaker) }.should change { Audit.count }.by(1)
179
+ lambda {@car.update_attributes(:auto_maker => @new_automaker)
180
+ }.should change { Audit.count }.by(1)
175
181
  end
176
-
182
+
177
183
  describe "our latest audit" do
178
184
  before do
179
185
  @car.update_attributes(:auto_maker => @new_automaker)
@@ -186,16 +192,16 @@ describe "Auditing" do
186
192
  it "new_value should be an id" do
187
193
  @car.audits.first.new_value.should == @new_automaker.id
188
194
  end
189
-
195
+
190
196
  it "old_value should be an id" do
191
197
  @car.audits.first.old_value.should == @automaker.id
192
198
  end
193
-
199
+
194
200
  it "should be reversable" do
195
201
  @car.audits.first.reversable?.should == true
196
202
  end
197
203
  end
198
204
  end
199
205
  end # belongs_to relationships
200
-
206
+
201
207
  end
data/spec/schema.rb CHANGED
@@ -36,19 +36,25 @@ ActiveRecord::Schema.define(:version => 0) do
36
36
  t.timestamps
37
37
  end
38
38
 
39
+ create_table :phone_numbers do |t|
40
+ t.string :number
41
+ t.string :extension
42
+ t.string :phoneable_type
43
+ t.integer :phoneable_id
44
+ t.timestamps
45
+ end
46
+
39
47
  create_table :people do |t|
40
48
  t.string :first_name
41
49
  t.string :last_name
42
50
  t.timestamps
43
51
  end
44
52
 
45
- create_table :phone_numbers do |t|
46
- t.string :number
47
- t.string :extension
48
- t.string :phoneable_type
49
- t.integer :phoneable_id
53
+ create_table :employments do |t|
54
+ t.integer :person_id
55
+ t.integer :company_id
56
+ t.string :start_date
50
57
  t.timestamps
51
58
  end
52
-
53
59
 
54
60
  end
data/spec/spec_helper.rb CHANGED
@@ -4,7 +4,6 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
4
  require 'active_record'
5
5
  require 'auditing'
6
6
  require 'rspec'
7
- # require 'spec/autorun'
8
7
 
9
8
  # our test database
10
9
  TEST_DB = File.join(File.dirname(__FILE__), '..', 'test.sqlite3')
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 1
7
+ - 1
7
8
  - 0
8
- - 0
9
- version: 1.0.0
9
+ version: 1.1.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Brad Cantin
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-10-09 00:00:00 -04:00
17
+ date: 2010-10-16 00:00:00 -04:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -26,10 +26,9 @@ dependencies:
26
26
  - - ">="
27
27
  - !ruby/object:Gem::Version
28
28
  segments:
29
- - 1
30
29
  - 2
31
- - 9
32
- version: 1.2.9
30
+ - 0
31
+ version: "2.0"
33
32
  type: :development
34
33
  version_requirements: *id001
35
34
  description: acts_as_versioned is good. This allows an attribute level rollback instead