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