activerecord-mysql-reconnect 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4dc078edb058b76e0a2608757ee28874723e17b0
4
- data.tar.gz: 3ce76b372e6dcc6c0ea9a1d3c92852376671aa86
3
+ metadata.gz: 9ac7822c0f663ad7cf90036be1093e185b6a7510
4
+ data.tar.gz: 0e47d5cf1f48399f9f120d7596206521ba91be5d
5
5
  SHA512:
6
- metadata.gz: f026083fd7126a3910045110d0fb697b004667eef51ad4bbaa201256ecdd8b216b1ba11401b19faa730e4a0f7bc2207ff11d62e25eb0c5c0c0508f942d2ee1d9
7
- data.tar.gz: b0a162b084442e8fc6990f736f55cfedd5c36fb620403fbe3b1ec8351b8a5bf36b69058dc1564051474f14aec4da8667341e45ee8c0cc7acbe5295f1cfe9ab52
6
+ metadata.gz: 3e02a754713686f67ef46dddb0091c34caf7b43b596048ed5f83543f13093d61dfd5774dad7010a163a9e48474760736a4bec063b1424f6b13b2a95beb50c93b
7
+ data.tar.gz: 62edd5b7910a1723d334e91bab60e89ffb3f70c2c2886ffae06cee0857c123efb66786652ad73e2d0f67f0dd403acd87c50352b5c7b5cc677c720161d9276366
@@ -18,9 +18,10 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ['lib']
20
20
 
21
- spec.add_dependency 'activerecord', '~> 3.2.14'
21
+ # '~> 3.2.14' or '~> 4.0.2'
22
+ spec.add_dependency 'activerecord'
23
+ spec.add_dependency 'mysql2'
22
24
  spec.add_development_dependency 'bundler', '~> 1.3'
23
25
  spec.add_development_dependency 'rake'
24
26
  spec.add_development_dependency 'rspec', '>= 2.14.1'
25
- spec.add_development_dependency 'mysql2'
26
27
  end
@@ -1,6 +1,7 @@
1
1
  require 'active_record'
2
2
  require 'active_record/connection_adapters/abstract_mysql_adapter'
3
3
  require 'active_support'
4
+ require 'mysql2'
4
5
  require 'logger'
5
6
 
6
7
  class ActiveRecord::Base
@@ -69,15 +70,20 @@ class ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter
69
70
  block_with_reconnect = nil
70
71
  retval = nil
71
72
  sql_names = [[sql, name]]
73
+ orig_transaction = @transaction
72
74
 
73
75
  retryable_loop(tries) do |n|
74
76
  begin
75
77
  retval = (block_with_reconnect || block).call(sql_names)
76
78
  break
77
- rescue => e
79
+ rescue ActiveRecord::StatementInvalid, Mysql2::Error => e
78
80
  if not without_retry? and (tries.zero? or n < tries) and e.message =~ Regexp.union(ERROR_MESSAGES)
79
81
  unless block_with_reconnect
80
- block_with_reconnect = proc {|i| reconnect! ; block.call(i) }
82
+ block_with_reconnect = proc do |i|
83
+ reconnect!
84
+ @transaction = orig_transaction if orig_transaction
85
+ block.call(i)
86
+ end
81
87
  end
82
88
 
83
89
  sql_names = merge_transaction(sql, name)
@@ -1,7 +1,7 @@
1
1
  module Activerecord
2
2
  module Mysql
3
3
  module Reconnect
4
- VERSION = '0.1.0'
4
+ VERSION = '0.1.1'
5
5
  end
6
6
  end
7
7
  end
@@ -1,4 +1,4 @@
1
- describe Hash do
1
+ describe 'activerecord-mysql-reconnect' do
2
2
  it 'select all' do
3
3
  expect {
4
4
  expect(Employee.all.length).to eq(300024)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-mysql-reconnect
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Genki Sugawara
@@ -14,16 +14,30 @@ dependencies:
14
14
  name: activerecord
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
- version: 3.2.14
19
+ version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: mysql2
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
25
39
  - !ruby/object:Gem::Version
26
- version: 3.2.14
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: bundler
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -66,20 +80,6 @@ dependencies:
66
80
  - - '>='
67
81
  - !ruby/object:Gem::Version
68
82
  version: 2.14.1
69
- - !ruby/object:Gem::Dependency
70
- name: mysql2
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - '>='
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - '>='
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
83
  description: It is the library to reconnect automatically when ActiveRecord is disconnected
84
84
  from MySQL.
85
85
  email: