filecluster 0.5.23 → 0.5.24

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/fc/db.rb +12 -3
  3. data/lib/fc/version.rb +1 -1
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e85e6032ee97c7bf2f86b3e58fa75eb7920914e54f24560afb5e8973bf9ad4b2
4
- data.tar.gz: a113aa6d4275cc5032f4899c8fb30c08bab0025be091313a731c86f4be56fb1b
3
+ metadata.gz: 89d3074974713ab1d820dca546ec70cb2fe3230348e30482e8edaae425a6c615
4
+ data.tar.gz: 9830d0fb5c1acbd702a26217bb9d107ad07d126ea6b60d9dad5165033197f59f
5
5
  SHA512:
6
- metadata.gz: bf0abe70d8660f86d29e50cb1ccdbb73c3d508824840e7a00a6e447491c1cab9d8a7d50f85bb85c509bf21745e6c7e7a4159714800ad0fa85031ae961a0965aa
7
- data.tar.gz: f96c84b51ce39e37c6c4362c1406500664429d18463000ffe2c552b30e85acfaaf663797c683ecf506cea21ed74a1d15397828fc75f8728cd836669791a38f2c
6
+ metadata.gz: c4a90b722c7044b0aa4b5c814a705dfcfe8ff3d0e2491f61dac41eec77f2c1045172ecbe6a2103d789cff0a7771aebbcca1de04ef9f9a3767fe643f07e3c538b
7
+ data.tar.gz: 92c761b6785ed30d6b906fbfa4fed340aea14aea3cf150567be84bea4e0b91447decd0b6b6c5eb53406cebedc055712ed31b9f04005bb7699ae32af728e90cc7
data/lib/fc/db.rb CHANGED
@@ -4,7 +4,7 @@ require 'psych'
4
4
  module FC
5
5
  module DB
6
6
  class << self
7
- attr_accessor :options, :prefix, :err_counter, :no_active_record, :connect_block, :logger, :reconnecting
7
+ attr_accessor :options, :prefix, :err_counter, :no_active_record, :connect_block, :logger, :reconnecting, :reconnect_block
8
8
  end
9
9
 
10
10
  def self.options_yml_path
@@ -20,7 +20,7 @@ module FC
20
20
  @prefix = @options[:prefix].to_s if @options[:prefix]
21
21
  connection = Mysql2::Client.new(@options)
22
22
  @reconnecting = false
23
- @connect_block = nil
23
+ @connect_block = nil unless @options[:keep_lazy_connection]
24
24
  @connects = {} unless @connects
25
25
  @connects[Thread.current.object_id] = connection
26
26
  end
@@ -48,6 +48,10 @@ module FC
48
48
  @connect_block = block
49
49
  end
50
50
 
51
+ def self.lazy_reconnect(&block)
52
+ @reconnect_block = block
53
+ end
54
+
51
55
  def self.connect_by_block(options = {})
52
56
  connection = @connect_block.call
53
57
  @options = connection.query_options.clone.merge(symbolize_keys(options))
@@ -57,6 +61,11 @@ module FC
57
61
  @connect_block = nil unless @options[:keep_lazy_connection]
58
62
  end
59
63
 
64
+ def self.reconnect_by_block
65
+ @connects[Thread.current.object_id] = @reconnect_block.call
66
+ @reconnecting = false
67
+ end
68
+
60
69
  def self.connect
61
70
  connect_by_block if @connect_block
62
71
  return nil unless @options
@@ -86,7 +95,7 @@ module FC
86
95
  def self.reconnect
87
96
  close if connect
88
97
  @reconnecting = true
89
- connect_by_config(@options)
98
+ @reconnect_block ? reconnect_by_block : connect_by_config(@options)
90
99
  end
91
100
 
92
101
  def self.close
data/lib/fc/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module FC
2
- VERSION = '0.5.23'.freeze
2
+ VERSION = '0.5.24'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: filecluster
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.23
4
+ version: 0.5.24
5
5
  platform: ruby
6
6
  authors:
7
7
  - sh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-04 00:00:00.000000000 Z
11
+ date: 2020-02-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mysql2