activerecord-mysql-reconnect 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.
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: