activerecord-mysql-reconnect 0.3.3 → 0.3.4

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,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- YmIxN2Y4NzUyOGY2NGE0MWQzYjk3MTk4YmFjZTNiM2JiZDA0NjhiNQ==
5
- data.tar.gz: !binary |-
6
- Njk5Yjk5MDk0ZWUyMjlkNjRkNWUwMWMxMDkxMTQyZGE4NTczYjUyYg==
2
+ SHA1:
3
+ metadata.gz: 9feafc3ddcaeba6d385f2d99565689efcaa3c46b
4
+ data.tar.gz: 5c74370dd16ba0e406eccd436140da9c74c62cf7
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- ZWRjNjVhNzk3YjA5YzJhYTZmODlkNWQ0NDc0NDM0MjU2OTJlODIyYWU1YzI4
10
- NDFkNjJjODg4ZmViMThlMTE2OTRiZGIyN2FmMjE2MGUxZTQyZmRiMTRjZDIx
11
- MTc2OWQ3NzE1ZDQzYjQ0MTYxMDQ2MDcyOTc3NWRiNmIzNjkzNWY=
12
- data.tar.gz: !binary |-
13
- ZmNlMzZkZmNhZjRhNjc1Yzk0MGM1NmMxMzBjM2YzN2U1MGRiYTk5ZDdmYjQ1
14
- NTJkMmE2NjFmMzViN2U2OTNkMDM4YjRmYzE5MWM2NDU3MWQ3MjY5NDlkNGY5
15
- YTRiZWE5Y2U5MWU1ODhmOTA4ZjAwYzUwNTlhNTc2Y2Y5OGU1M2Q=
6
+ metadata.gz: 3166411ed87951ce3c42cb8626b4378b2da20c6d87a79963632b00fc74f819e9aa7fa1880760c9fdcb86462a3b15bf4cbb2443258282f051f44bcf25a4160e20
7
+ data.tar.gz: 98212109f565974bc9f4a04731d7fbe754bfbfedf453ac02cf8cc7588d1b437321a918de915d728cb49aaa0cc6c13047c95603b29aef9a1e525303be00c2e888
data/.gitignore CHANGED
@@ -16,3 +16,5 @@ test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
18
  test.rb
19
+ *.bak
20
+ *.swp
data/.rspec CHANGED
@@ -1,2 +1,4 @@
1
1
  --require spec_helper
2
2
  --colour
3
+ --require rspec/instafail
4
+ --format RSpec::Instafail
data/ChangeLog CHANGED
@@ -1,3 +1,8 @@
1
+ activerecord-mysql-reconnect 0.3.3 (January 18, 2014)
2
+
3
+ * use BigDecimal for sleep
4
+ * add handling error ('The MySQL server is running with the --read-only...')
5
+
1
6
  activerecord-mysql-reconnect 0.3.1 (January 9, 2014)
2
7
 
3
8
  * Retry mode is added
data/README.md CHANGED
@@ -22,7 +22,8 @@ Or install it yourself as:
22
22
  ## Usage
23
23
 
24
24
  ```ruby
25
- require 'activerecord/mysql/reconnect'
25
+ require 'active_record'
26
+ require 'activerecord-mysql-reconnect'
26
27
  require 'logger'
27
28
 
28
29
  ActiveRecord::Base.establish_connection(
@@ -89,7 +90,10 @@ gem 'activerecord-mysql-reconnect'
89
90
  MyApp::Application.configure do
90
91
  ...
91
92
  config.active_record.enable_retry = true
93
+ #config.active_record.retry_databases = :employees # or [:employees], ['employees']
94
+ # retry_databases -> 0: retry all databases (default)
92
95
  config.active_record.execution_tries = 10 # times
96
+ # execution_tries -> 0: retry indefinitely
93
97
  config.active_record.execution_retry_wait = 1.5 # sec
94
98
  config.active_record.retry_mode = :rw # default: `:r`, valid values: `:r`, `:rw`, `:force`
95
99
  ...
@@ -20,8 +20,10 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  # '~> 3.2.14' or '~> 4.0.2'
22
22
  spec.add_dependency 'activerecord'
23
+ spec.add_dependency 'activesupport'
23
24
  spec.add_dependency 'mysql2'
24
25
  spec.add_development_dependency 'bundler', '~> 1.3'
25
26
  spec.add_development_dependency 'rake'
26
27
  spec.add_development_dependency 'rspec', '>= 2.14.1'
28
+ spec.add_development_dependency 'rspec-instafail'
27
29
  end
@@ -0,0 +1,5 @@
1
+ require 'active_support'
2
+
3
+ ActiveSupport.on_load :active_record do
4
+ require_relative 'activerecord/mysql/reconnect'
5
+ end
@@ -3,12 +3,10 @@ require 'logger'
3
3
  require 'bigdecimal'
4
4
 
5
5
  require 'active_record'
6
- require 'active_record/base'
7
6
  require 'active_record/connection_adapters/abstract_adapter'
8
7
  require 'active_record/connection_adapters/abstract_mysql_adapter'
9
8
  require 'active_record/connection_adapters/mysql2_adapter'
10
9
  require 'active_record/connection_adapters/abstract/connection_pool'
11
- require 'active_support'
12
10
 
13
11
  require 'activerecord/mysql/reconnect/version'
14
12
  require 'activerecord/mysql/reconnect/base_ext'
@@ -77,6 +75,20 @@ module Activerecord::Mysql::Reconnect
77
75
  @activerecord_mysql_reconnect_retry_mode || DEFAULT_RETRY_MODE
78
76
  end
79
77
 
78
+ def retry_databases=(v)
79
+ v ||= []
80
+
81
+ unless v.kind_of?(Array)
82
+ v = [v]
83
+ end
84
+
85
+ @activerecord_mysql_reconnect_retry_databases = v.map {|i| i.to_s }
86
+ end
87
+
88
+ def retry_databases
89
+ @activerecord_mysql_reconnect_retry_databases || []
90
+ end
91
+
80
92
  def retryable(opts)
81
93
  block = opts.fetch(:proc)
82
94
  on_error = opts[:on_error]
@@ -95,8 +107,9 @@ module Activerecord::Mysql::Reconnect
95
107
 
96
108
  opt_msgs = ["cause: #{e} [#{e.class}]"]
97
109
 
98
- if conn and conn.kind_of?(Mysql2::Client)
99
- opt_msgs << 'connection: ' + [:host, :database, :username].map {|k| "#{k}=#{conn.query_options[k]}" }.join(";")
110
+ if conn
111
+ conn_info = connection_info(conn)
112
+ opt_msgs << 'connection: ' + [:host, :database, :username].map {|k| "#{k}=#{conn_info[k]}" }.join(";")
100
113
  end
101
114
 
102
115
  logger.warn("MySQL server has gone away. Trying to reconnect in #{wait.to_f} seconds. (#{opt_msgs.join(', ')})")
@@ -161,11 +174,17 @@ module Activerecord::Mysql::Reconnect
161
174
  def should_handle?(e, opts = {})
162
175
  sql = opts[:sql]
163
176
  retry_mode = opts[:retry_mode]
177
+ conn = opts[:connection]
164
178
 
165
179
  if without_retry?
166
180
  return false
167
181
  end
168
182
 
183
+ if conn and not retry_databases.empty?
184
+ conn_info = connection_info(conn)
185
+ return false unless retry_databases.include?(conn_info[:database])
186
+ end
187
+
169
188
  unless HANDLE_ERROR.any? {|i| e.kind_of?(i) }
170
189
  return false
171
190
  end
@@ -186,5 +205,17 @@ module Activerecord::Mysql::Reconnect
186
205
 
187
206
  return true
188
207
  end
208
+
209
+ def connection_info(conn)
210
+ conn_info = {}
211
+
212
+ if conn.kind_of?(Mysql2::Client)
213
+ [:host, :database, :username].each {|k| conn_info[k] = conn.query_options[k] }
214
+ elsif conn.kind_of?(Hash)
215
+ conn_info = conn.dup
216
+ end
217
+
218
+ return conn_info
219
+ end
189
220
  end # end of class methods
190
221
  end
@@ -15,6 +15,14 @@ class ActiveRecord::Base
15
15
  Activerecord::Mysql::Reconnect.retry_mode
16
16
  end
17
17
 
18
+ def retry_databases=(v)
19
+ Activerecord::Mysql::Reconnect.retry_databases = v
20
+ end
21
+
22
+ def retry_databases
23
+ Activerecord::Mysql::Reconnect.retry_databases
24
+ end
25
+
18
26
  def without_retry
19
27
  Activerecord::Mysql::Reconnect.without_retry do
20
28
  yield
@@ -3,7 +3,8 @@ class ActiveRecord::ConnectionAdapters::ConnectionPool
3
3
  Activerecord::Mysql::Reconnect.retryable(
4
4
  :proc => proc {
5
5
  new_connection_without_retry
6
- }
6
+ },
7
+ :connection => spec.config,
7
8
  )
8
9
  end
9
10
 
@@ -1,7 +1,7 @@
1
1
  module Activerecord
2
2
  module Mysql
3
3
  module Reconnect
4
- VERSION = '0.3.3'
4
+ VERSION = '0.3.4'
5
5
  end
6
6
  end
7
7
  end
data/run-all-tests.sh ADDED
@@ -0,0 +1,46 @@
1
+ #!/bin/bash
2
+ set -e
3
+
4
+ # sysvbanner
5
+ # https://github.com/uffejakobsen/sysvbanner
6
+
7
+ banner `mysqld --version`
8
+
9
+ export ACTIVERECORD_MYSQL_RECONNECT_ENGINE=InnoDB
10
+ banner $ACTIVERECORD_MYSQL_RECONNECT_ENGINE
11
+
12
+ sed -i.bak "s/spec.add_dependency 'activerecord'.*/spec.add_dependency 'activerecord', '= 3.2.14'/" activerecord-mysql-reconnect.gemspec
13
+ bundle install -j4
14
+ banner `bundle exec ruby -e 'require "active_record"; puts ActiveRecord::VERSION::STRING'`
15
+ bundle exec rake
16
+
17
+ sed -i.bak "s/spec.add_dependency 'activerecord'.*/spec.add_dependency 'activerecord', '~> 3.2.14'/" activerecord-mysql-reconnect.gemspec
18
+ bundle install -j4
19
+ banner `bundle exec ruby -e 'require "active_record"; puts ActiveRecord::VERSION::STRING'`
20
+ bundle exec rake
21
+
22
+ sed -i.bak "s/spec.add_dependency 'activerecord'.*/spec.add_dependency 'activerecord', '~> 4.0'/" activerecord-mysql-reconnect.gemspec
23
+ bundle install -j4
24
+ banner `bundle exec ruby -e 'require "active_record"; puts ActiveRecord::VERSION::STRING'`
25
+ bundle exec rake
26
+
27
+ export ACTIVERECORD_MYSQL_RECONNECT_ENGINE=MyISAM
28
+ banner $ACTIVERECORD_MYSQL_RECONNECT_ENGINE
29
+
30
+ sed -i.bak "s/spec.add_dependency 'activerecord'.*/spec.add_dependency 'activerecord', '= 3.2.14'/" activerecord-mysql-reconnect.gemspec
31
+ bundle install -j4
32
+ banner `bundle exec ruby -e 'require "active_record"; puts ActiveRecord::VERSION::STRING'`
33
+ bundle exec rake
34
+
35
+ sed -i.bak "s/spec.add_dependency 'activerecord'.*/spec.add_dependency 'activerecord', '~> 3.2.14'/" activerecord-mysql-reconnect.gemspec
36
+ bundle install -j4
37
+ banner `bundle exec ruby -e 'require "active_record"; puts ActiveRecord::VERSION::STRING'`
38
+ bundle exec rake
39
+
40
+ sed -i.bak "s/spec.add_dependency 'activerecord'.*/spec.add_dependency 'activerecord', '~> 4.0'/" activerecord-mysql-reconnect.gemspec
41
+ bundle install -j4
42
+ banner `bundle exec ruby -e 'require "active_record"; puts ActiveRecord::VERSION::STRING'`
43
+ bundle exec rake
44
+
45
+ git checkout activerecord-mysql-reconnect.gemspec
46
+ rm *.bak spec/*.bak
@@ -18,7 +18,7 @@ describe 'activerecord-mysql-reconnect' do
18
18
  it 'on select' do
19
19
  expect {
20
20
  th = thread_run {|do_stop|
21
- expect(Employee.where(:id => 1).pluck('sleep(15) * 0')).to eq([0])
21
+ expect(Employee.where(:id => 1).pluck('sleep(10) * 0')).to eq([0])
22
22
  }
23
23
 
24
24
  mysql_restart
@@ -36,7 +36,7 @@ describe 'activerecord-mysql-reconnect' do
36
36
  emp = Employee.create(
37
37
  :emp_no => 1,
38
38
  :birth_date => Time.now,
39
- :first_name => "' + sleep(15) + '",
39
+ :first_name => "' + sleep(10) + '",
40
40
  :last_name => 'Tiger',
41
41
  :hire_date => Time.now
42
42
  )
@@ -58,7 +58,7 @@ describe 'activerecord-mysql-reconnect' do
58
58
  expect {
59
59
  th = thread_run {|do_stop|
60
60
  emp = Employee.where(:id => 1).first
61
- emp.first_name = "' + sleep(15) + '"
61
+ emp.first_name = "' + sleep(10) + '"
62
62
  emp.last_name = 'ZapZapZap'
63
63
 
64
64
  mysql2_error('MySQL server has gone away') do
@@ -88,77 +88,81 @@ describe 'activerecord-mysql-reconnect' do
88
88
  end
89
89
 
90
90
  it 'transaction' do
91
- expect {
92
- expect(Employee.count).to eq(300024)
91
+ unless /MyISAM/i =~ ENV['ACTIVERECORD_MYSQL_RECONNECT_ENGINE']
92
+ expect {
93
+ expect(Employee.count).to eq(300024)
93
94
 
94
- mysql2_error('MySQL server has gone away') do
95
- ActiveRecord::Base.transaction do
96
- emp = Employee.create(
97
- :emp_no => 1,
98
- :birth_date => Time.now,
99
- :first_name => 'Scott',
100
- :last_name => 'Tiger',
101
- :hire_date => Time.now
102
- )
103
- expect(emp.id).to eq(300025)
104
- expect(emp.emp_no).to eq(1)
105
- mysql_restart
106
- emp = Employee.create(
107
- :emp_no => 2,
108
- :birth_date => Time.now,
109
- :first_name => 'Scott',
110
- :last_name => 'Tiger',
111
- :hire_date => Time.now
112
- )
113
- expect(emp.id).to eq(300025)
114
- expect(emp.emp_no).to eq(2)
95
+ mysql2_error('MySQL server has gone away') do
96
+ ActiveRecord::Base.transaction do
97
+ emp = Employee.create(
98
+ :emp_no => 1,
99
+ :birth_date => Time.now,
100
+ :first_name => 'Scott',
101
+ :last_name => 'Tiger',
102
+ :hire_date => Time.now
103
+ )
104
+ expect(emp.id).to eq(300025)
105
+ expect(emp.emp_no).to eq(1)
106
+ mysql_restart
107
+ emp = Employee.create(
108
+ :emp_no => 2,
109
+ :birth_date => Time.now,
110
+ :first_name => 'Scott',
111
+ :last_name => 'Tiger',
112
+ :hire_date => Time.now
113
+ )
114
+ expect(emp.id).to eq(300025)
115
+ expect(emp.emp_no).to eq(2)
116
+ end
115
117
  end
116
- end
117
118
 
118
- expect(Employee.count).to eq(300025)
119
- }.to_not raise_error
119
+ expect(Employee.count).to eq(300025)
120
+ }.to_not raise_error
121
+ end
120
122
  end
121
123
 
122
124
  it 'retryable_transaction' do
123
- expect {
124
- expect(Employee.count).to eq(300024)
125
+ unless /MyISAM/i =~ ENV['ACTIVERECORD_MYSQL_RECONNECT_ENGINE']
126
+ expect {
127
+ expect(Employee.count).to eq(300024)
125
128
 
126
- mysql2_error('MySQL server has gone away') do
127
- ActiveRecord::Base.retryable_transaction do
128
- emp = Employee.create(
129
- :emp_no => 1,
130
- :birth_date => Time.now,
131
- :first_name => 'Scott',
132
- :last_name => 'Tiger',
133
- :hire_date => Time.now
134
- )
135
- expect(emp.id).to eq(300025)
136
- expect(emp.emp_no).to eq(1)
137
- mysql_restart
138
- emp = Employee.create(
139
- :emp_no => 2,
140
- :birth_date => Time.now,
141
- :first_name => 'Scott',
142
- :last_name => 'Tiger',
143
- :hire_date => Time.now
144
- )
145
- expect(emp.id).to eq(300026)
146
- expect(emp.emp_no).to eq(2)
147
- mysql_restart
148
- emp = Employee.create(
149
- :emp_no => 3,
150
- :birth_date => Time.now,
151
- :first_name => 'Scott',
152
- :last_name => 'Tiger',
153
- :hire_date => Time.now
154
- )
155
- expect(emp.id).to eq(300027)
156
- expect(emp.emp_no).to eq(3)
129
+ mysql2_error('MySQL server has gone away') do
130
+ ActiveRecord::Base.retryable_transaction do
131
+ emp = Employee.create(
132
+ :emp_no => 1,
133
+ :birth_date => Time.now,
134
+ :first_name => 'Scott',
135
+ :last_name => 'Tiger',
136
+ :hire_date => Time.now
137
+ )
138
+ expect(emp.id).to eq(300025)
139
+ expect(emp.emp_no).to eq(1)
140
+ mysql_restart
141
+ emp = Employee.create(
142
+ :emp_no => 2,
143
+ :birth_date => Time.now,
144
+ :first_name => 'Scott',
145
+ :last_name => 'Tiger',
146
+ :hire_date => Time.now
147
+ )
148
+ expect(emp.id).to eq(300026)
149
+ expect(emp.emp_no).to eq(2)
150
+ mysql_restart
151
+ emp = Employee.create(
152
+ :emp_no => 3,
153
+ :birth_date => Time.now,
154
+ :first_name => 'Scott',
155
+ :last_name => 'Tiger',
156
+ :hire_date => Time.now
157
+ )
158
+ expect(emp.id).to eq(300027)
159
+ expect(emp.emp_no).to eq(3)
160
+ end
157
161
  end
158
- end
159
162
 
160
- expect(Employee.count).to eq(300027)
161
- }.to_not raise_error
163
+ expect(Employee.count).to eq(300027)
164
+ }.to_not raise_error
165
+ end
162
166
  end
163
167
 
164
168
  it 'retry new connection' do
@@ -173,7 +177,7 @@ describe 'activerecord-mysql-reconnect' do
173
177
  expect {
174
178
  th = thread_run {|do_stop|
175
179
  mysql_stop
176
- sleep 15
180
+ sleep 10
177
181
  mysql_start
178
182
  }
179
183
 
@@ -186,7 +190,7 @@ describe 'activerecord-mysql-reconnect' do
186
190
  expect {
187
191
  th = thread_run {|do_stop|
188
192
  mysql_stop
189
- sleep 15
193
+ sleep 10
190
194
  mysql_start
191
195
  }
192
196
 
@@ -224,12 +228,14 @@ describe 'activerecord-mysql-reconnect' do
224
228
  it 'read only (write)' do
225
229
  enable_read_only do
226
230
  expect {
231
+ lock_table
232
+
227
233
  th = thread_run {|do_stop|
228
234
  mysql2_error('MySQL server has gone away') do
229
235
  emp = Employee.create(
230
236
  :emp_no => 1,
231
237
  :birth_date => Time.now,
232
- :first_name => "' + sleep(15) + '",
238
+ :first_name => 'Scott',
233
239
  :last_name => 'Tiger',
234
240
  :hire_date => Time.now
235
241
  )
@@ -243,12 +249,14 @@ describe 'activerecord-mysql-reconnect' do
243
249
  end
244
250
 
245
251
  it 'lost connection' do
246
- sql = "INSERT INTO `employees` (`birth_date`, `emp_no`, `first_name`, `hire_date`, `last_name`) VALUES ('2014-01-09 03:22:25', 1, '' + sleep(15) + '', '2014-01-09 03:22:25', 'Tiger')"
252
+ sql = "INSERT INTO `employees` (`birth_date`, `emp_no`, `first_name`, `hire_date`, `last_name`) VALUES ('2014-01-09 03:22:25', 1, 'Scott', '2014-01-09 03:22:25', 'Tiger')"
247
253
 
248
254
  expect {
249
255
  ActiveRecord::Base.connection.execute(sql)
250
256
  }.to_not raise_error
251
257
 
258
+ lock_table
259
+
252
260
  mysql2_error('Lost connection to MySQL server during query') do
253
261
  expect {
254
262
  th = thread_run {|do_stop|
@@ -262,7 +270,7 @@ describe 'activerecord-mysql-reconnect' do
262
270
  end
263
271
 
264
272
  it 'force retry' do
265
- sql = "INSERT INTO `employees` (`birth_date`, `emp_no`, `first_name`, `hire_date`, `last_name`) VALUES ('2014-01-09 03:22:25', 1, '' + sleep(15) + '', '2014-01-09 03:22:25', 'Tiger')"
273
+ sql = "INSERT INTO `employees` (`birth_date`, `emp_no`, `first_name`, `hire_date`, `last_name`) VALUES ('2014-01-09 03:22:25', 1, '' + sleep(10) + '', '2014-01-09 03:22:25', 'Tiger')"
266
274
 
267
275
  expect {
268
276
  ActiveRecord::Base.connection.execute(sql)
@@ -291,4 +299,20 @@ describe 'activerecord-mysql-reconnect' do
291
299
  }.to_not raise_error
292
300
  end
293
301
  end
302
+
303
+ it 'retry specific database' do
304
+ retry_databases(:employees2) do
305
+ expect {
306
+ expect(Employee.all.length).to eq(300024)
307
+ mysql_restart
308
+ expect(Employee.all.length).to eq(300024)
309
+ }.to raise_error(ActiveRecord::StatementInvalid)
310
+ end
311
+
312
+ expect {
313
+ expect(Employee.all.length).to eq(300024)
314
+ mysql_restart
315
+ expect(Employee.all.length).to eq(300024)
316
+ }.to_not raise_error
317
+ end
294
318
  end
data/spec/spec_helper.rb CHANGED
@@ -67,6 +67,16 @@ def force_retry
67
67
  end
68
68
  end
69
69
 
70
+ def retry_databases(dbs)
71
+ begin
72
+ expect(ActiveRecord::Base.retry_databases).to eq([])
73
+ ActiveRecord::Base.retry_databases = dbs
74
+ yield
75
+ ensure
76
+ ActiveRecord::Base.retry_databases = []
77
+ end
78
+ end
79
+
70
80
  def thread_run
71
81
  thread_running = false
72
82
  do_stop = proc { thread_running = false }
@@ -84,8 +94,42 @@ def thread_run
84
94
  return th
85
95
  end
86
96
 
97
+ def lock_table
98
+ Thread.start do
99
+ begin
100
+ ActiveRecord::Base.connection.execute("LOCK TABLES employees WRITE")
101
+ rescue Exception
102
+ end
103
+ end
104
+
105
+ sleep 3
106
+ end
107
+
87
108
  RSpec.configure do |config|
109
+ config.before(:all) do
110
+ if ENV['ACTIVERECORD_MYSQL_RECONNECT_ENGINE']
111
+ engine = ENV['ACTIVERECORD_MYSQL_RECONNECT_ENGINE']
112
+ employees_sql = File.expand_path('../employees.sql', __FILE__)
113
+ system("sed -i.bak '17s/ENGINE=[^ ]*/ENGINE=#{engine}/' #{employees_sql}")
114
+ end
115
+ end
116
+
117
+ config.after(:all) do
118
+ employees_sql = File.expand_path('../employees.sql', __FILE__)
119
+ system("git checkout #{employees_sql}")
120
+ end
121
+
88
122
  config.before(:each) do
123
+ desc = example.metadata[:full_description]
124
+ puts <<-EOS
125
+
126
+
127
+ #{'#' * (desc.length + 4)}
128
+ # #{desc} #
129
+ #{'#' * (desc.length + 4)}
130
+
131
+ EOS
132
+
89
133
  employees_sql = File.expand_path('../employees.sql', __FILE__)
90
134
  system("mysql -u root < #{employees_sql}")
91
135
 
metadata CHANGED
@@ -1,41 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-mysql-reconnect
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Genki Sugawara
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-18 00:00:00.000000000 Z
11
+ date: 2014-03-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ! '>='
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
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: activesupport
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
40
  version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: mysql2
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
- - - ! '>='
45
+ - - '>='
32
46
  - !ruby/object:Gem::Version
33
47
  version: '0'
34
48
  type: :runtime
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
- - - ! '>='
52
+ - - '>='
39
53
  - !ruby/object:Gem::Version
40
54
  version: '0'
41
55
  - !ruby/object:Gem::Dependency
@@ -56,30 +70,44 @@ dependencies:
56
70
  name: rake
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
- - - ! '>='
73
+ - - '>='
60
74
  - !ruby/object:Gem::Version
61
75
  version: '0'
62
76
  type: :development
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
- - - ! '>='
80
+ - - '>='
67
81
  - !ruby/object:Gem::Version
68
82
  version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: rspec
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
- - - ! '>='
87
+ - - '>='
74
88
  - !ruby/object:Gem::Version
75
89
  version: 2.14.1
76
90
  type: :development
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
- - - ! '>='
94
+ - - '>='
81
95
  - !ruby/object:Gem::Version
82
96
  version: 2.14.1
97
+ - !ruby/object:Gem::Dependency
98
+ name: rspec-instafail
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
83
111
  description: It is the library to reconnect automatically when ActiveRecord is disconnected
84
112
  from MySQL.
85
113
  email:
@@ -96,6 +124,7 @@ files:
96
124
  - README.md
97
125
  - Rakefile
98
126
  - activerecord-mysql-reconnect.gemspec
127
+ - lib/activerecord-mysql-reconnect.rb
99
128
  - lib/activerecord/mysql/reconnect.rb
100
129
  - lib/activerecord/mysql/reconnect/abstract_adapter_ext.rb
101
130
  - lib/activerecord/mysql/reconnect/abstract_mysql_adapter_ext.rb
@@ -103,6 +132,7 @@ files:
103
132
  - lib/activerecord/mysql/reconnect/connection_pool_ext.rb
104
133
  - lib/activerecord/mysql/reconnect/mysql2_adapter_ext.rb
105
134
  - lib/activerecord/mysql/reconnect/version.rb
135
+ - run-all-tests.sh
106
136
  - spec/activerecord-mysql-reconnect_spec.rb
107
137
  - spec/employees.sql
108
138
  - spec/spec_helper.rb
@@ -116,17 +146,17 @@ require_paths:
116
146
  - lib
117
147
  required_ruby_version: !ruby/object:Gem::Requirement
118
148
  requirements:
119
- - - ! '>='
149
+ - - '>='
120
150
  - !ruby/object:Gem::Version
121
151
  version: '0'
122
152
  required_rubygems_version: !ruby/object:Gem::Requirement
123
153
  requirements:
124
- - - ! '>='
154
+ - - '>='
125
155
  - !ruby/object:Gem::Version
126
156
  version: '0'
127
157
  requirements: []
128
158
  rubyforge_project:
129
- rubygems_version: 2.1.11
159
+ rubygems_version: 2.0.14
130
160
  signing_key:
131
161
  specification_version: 4
132
162
  summary: It is the library to reconnect automatically when ActiveRecord is disconnected