test_after_commit 0.1.0 → 0.1.1
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/.travis.yml +12 -1
- data/Gemfile +1 -0
- data/Gemfile.lock +12 -10
- data/Rakefile +1 -17
- data/gemfiles/30.gemfile.lock +1 -1
- data/gemfiles/31.gemfile.lock +1 -1
- data/gemfiles/32.gemfile.lock +1 -1
- data/gemfiles/40.gemfile.lock +1 -1
- data/lib/test_after_commit.rb +2 -1
- data/lib/test_after_commit/version.rb +1 -1
- data/spec/database.rb +8 -0
- data/spec/test_after_commit_spec.rb +10 -0
- metadata +4 -4
data/.travis.yml
CHANGED
@@ -1,4 +1,15 @@
|
|
1
|
+
language: ruby
|
1
2
|
rvm:
|
2
3
|
- ree
|
3
|
-
- 1.9.2
|
4
4
|
- 1.9.3
|
5
|
+
- 2.0.0
|
6
|
+
gemfile:
|
7
|
+
- gemfiles/30.gemfile
|
8
|
+
- gemfiles/31.gemfile
|
9
|
+
- gemfiles/32.gemfile
|
10
|
+
- gemfiles/40.gemfile
|
11
|
+
matrix:
|
12
|
+
exclude:
|
13
|
+
- rvm: ree
|
14
|
+
gemfile: gemfiles/40.gemfile
|
15
|
+
script: "bundle exec rake spec"
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
test_after_commit (0.1.
|
4
|
+
test_after_commit (0.1.1)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
@@ -21,17 +21,18 @@ GEM
|
|
21
21
|
rake
|
22
22
|
arel (2.0.10)
|
23
23
|
builder (2.1.2)
|
24
|
-
|
24
|
+
bump (0.3.12)
|
25
|
+
diff-lcs (1.2.1)
|
25
26
|
i18n (0.5.0)
|
26
27
|
rake (0.9.2)
|
27
|
-
rspec (2.
|
28
|
-
rspec-core (~> 2.
|
29
|
-
rspec-expectations (~> 2.
|
30
|
-
rspec-mocks (~> 2.
|
31
|
-
rspec-core (2.
|
32
|
-
rspec-expectations (2.
|
33
|
-
diff-lcs (
|
34
|
-
rspec-mocks (2.
|
28
|
+
rspec (2.13.0)
|
29
|
+
rspec-core (~> 2.13.0)
|
30
|
+
rspec-expectations (~> 2.13.0)
|
31
|
+
rspec-mocks (~> 2.13.0)
|
32
|
+
rspec-core (2.13.1)
|
33
|
+
rspec-expectations (2.13.0)
|
34
|
+
diff-lcs (>= 1.1.3, < 2.0)
|
35
|
+
rspec-mocks (2.13.0)
|
35
36
|
sqlite3 (1.3.6)
|
36
37
|
tzinfo (0.3.33)
|
37
38
|
|
@@ -41,6 +42,7 @@ PLATFORMS
|
|
41
42
|
DEPENDENCIES
|
42
43
|
activerecord
|
43
44
|
appraisal
|
45
|
+
bump
|
44
46
|
rake
|
45
47
|
rspec (~> 2)
|
46
48
|
sqlite3
|
data/Rakefile
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'bundler/gem_tasks'
|
2
2
|
require 'appraisal'
|
3
|
+
require 'bump/tasks'
|
3
4
|
|
4
5
|
task :spec do
|
5
6
|
sh "rspec spec/"
|
@@ -8,20 +9,3 @@ end
|
|
8
9
|
task :default do
|
9
10
|
sh "bundle exec rake appraisal:install && bundle exec rake appraisal spec && REAL=1 bundle exec rake appraisal spec"
|
10
11
|
end
|
11
|
-
|
12
|
-
# extracted from https://github.com/grosser/project_template
|
13
|
-
rule /^version:bump:.*/ do |t|
|
14
|
-
sh "git status | grep 'nothing to commit'" # ensure we are not dirty
|
15
|
-
index = ['major', 'minor','patch'].index(t.name.split(':').last)
|
16
|
-
file = 'lib/test_after_commit/version.rb'
|
17
|
-
|
18
|
-
version_file = File.read(file)
|
19
|
-
old_version, *version_parts = version_file.match(/(\d+)\.(\d+)\.(\d+)/).to_a
|
20
|
-
version_parts[index] = version_parts[index].to_i + 1
|
21
|
-
version_parts[2] = 0 if index < 2 # remove patch for minor
|
22
|
-
version_parts[1] = 0 if index < 1 # remove minor for major
|
23
|
-
new_version = version_parts * '.'
|
24
|
-
File.open(file,'w'){|f| f.write(version_file.sub(old_version, new_version)) }
|
25
|
-
|
26
|
-
sh "bundle && git add #{file} Gemfile.lock && git commit -m 'bump version to #{new_version}'"
|
27
|
-
end
|
data/gemfiles/30.gemfile.lock
CHANGED
data/gemfiles/31.gemfile.lock
CHANGED
data/gemfiles/32.gemfile.lock
CHANGED
data/gemfiles/40.gemfile.lock
CHANGED
data/lib/test_after_commit.rb
CHANGED
@@ -11,13 +11,14 @@ ActiveRecord::ConnectionAdapters::DatabaseStatements.class_eval do
|
|
11
11
|
transaction_without_transactional_fixtures(*args) do
|
12
12
|
begin
|
13
13
|
@test_open_transactions += 1
|
14
|
-
yield
|
14
|
+
result = yield
|
15
15
|
rescue ActiveRecord::Rollback => e
|
16
16
|
raise e
|
17
17
|
else
|
18
18
|
if @test_open_transactions == 2
|
19
19
|
test_commit_records
|
20
20
|
end
|
21
|
+
result
|
21
22
|
ensure
|
22
23
|
@test_open_transactions -= 1
|
23
24
|
end
|
data/spec/database.rb
CHANGED
@@ -15,11 +15,14 @@ ActiveRecord::Migration.verbose = false
|
|
15
15
|
ActiveRecord::Schema.define(:version => 1) do
|
16
16
|
create_table "cars", :force => true do |t|
|
17
17
|
t.integer :counter, :default => 0, :null => false
|
18
|
+
t.integer :car_id
|
18
19
|
t.timestamps
|
19
20
|
end
|
20
21
|
end
|
21
22
|
|
22
23
|
class Car < ActiveRecord::Base
|
24
|
+
has_many :cars
|
25
|
+
|
23
26
|
after_commit :simple_after_commit
|
24
27
|
after_commit :simple_after_commit_on_create, :on => :create
|
25
28
|
after_commit :save_once, :on => :create, :if => :do_after_create_save
|
@@ -83,3 +86,8 @@ end
|
|
83
86
|
|
84
87
|
Car.observers = :car_observer
|
85
88
|
Car.instantiate_observers
|
89
|
+
|
90
|
+
class Bar < ActiveRecord::Base
|
91
|
+
self.table_name = "cars"
|
92
|
+
has_many :bars, :foreign_key => :car_id
|
93
|
+
end
|
@@ -64,6 +64,16 @@ describe TestAfterCommit do
|
|
64
64
|
car.counter.should == 3
|
65
65
|
end
|
66
66
|
|
67
|
+
it "returns on create and on create of associations" do
|
68
|
+
Car.create!.class.should == Car
|
69
|
+
Car.create!.cars.create.class.should == Car
|
70
|
+
end
|
71
|
+
|
72
|
+
it "returns on create and on create of associations without after_commit" do
|
73
|
+
Bar.create!.class.should == Bar
|
74
|
+
Bar.create!.bars.create.class.should == Bar
|
75
|
+
end
|
76
|
+
|
67
77
|
context "Observer" do
|
68
78
|
before do
|
69
79
|
CarObserver.recording = true
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: test_after_commit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-03-
|
12
|
+
date: 2013-03-21 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description:
|
15
15
|
email: michael@grosser.it
|
@@ -52,7 +52,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
52
52
|
version: '0'
|
53
53
|
segments:
|
54
54
|
- 0
|
55
|
-
hash: -
|
55
|
+
hash: -3932025956405055829
|
56
56
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
57
57
|
none: false
|
58
58
|
requirements:
|
@@ -61,7 +61,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
61
61
|
version: '0'
|
62
62
|
segments:
|
63
63
|
- 0
|
64
|
-
hash: -
|
64
|
+
hash: -3932025956405055829
|
65
65
|
requirements: []
|
66
66
|
rubyforge_project:
|
67
67
|
rubygems_version: 1.8.25
|