test_after_commit 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -2,6 +2,7 @@ source "https://rubygems.org"
2
2
  gemspec
3
3
 
4
4
  gem 'rake'
5
+ gem 'bump'
5
6
  gem 'rspec', '~>2'
6
7
  gem 'sqlite3'
7
8
  gem 'appraisal'
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- test_after_commit (0.1.0)
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
- diff-lcs (1.1.3)
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.6.0)
28
- rspec-core (~> 2.6.0)
29
- rspec-expectations (~> 2.6.0)
30
- rspec-mocks (~> 2.6.0)
31
- rspec-core (2.6.4)
32
- rspec-expectations (2.6.0)
33
- diff-lcs (~> 1.1.2)
34
- rspec-mocks (2.6.0)
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
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: /Users/mgrosser/code/tools/test_after_commit
3
3
  specs:
4
- test_after_commit (0.0.1)
4
+ test_after_commit (0.1.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: /Users/mgrosser/code/tools/test_after_commit
3
3
  specs:
4
- test_after_commit (0.0.1)
4
+ test_after_commit (0.1.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: /Users/mgrosser/code/tools/test_after_commit
3
3
  specs:
4
- test_after_commit (0.0.1)
4
+ test_after_commit (0.1.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: /Users/mgrosser/code/tools/test_after_commit
3
3
  specs:
4
- test_after_commit (0.0.1)
4
+ test_after_commit (0.1.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -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
@@ -1,3 +1,3 @@
1
1
  module TestAfterCommit
2
- VERSION = '0.1.0'
2
+ VERSION = '0.1.1'
3
3
  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.0
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-16 00:00:00.000000000 Z
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: -3018637931883165367
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: -3018637931883165367
64
+ hash: -3932025956405055829
65
65
  requirements: []
66
66
  rubyforge_project:
67
67
  rubygems_version: 1.8.25