activerecord_partitioning 0.0.2 → 0.0.3

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.
@@ -3,21 +3,22 @@ require 'activerecord_partitioning/connection_pools'
3
3
 
4
4
  module ActiveRecordPartitioning
5
5
  module_function
6
- def setup(key_name, base_config = {}, store = {})
7
- @base_config = base_config.symbolize_keys
6
+ def setup(key_name, default_config = nil, store = {})
7
+ @default_config = default_config.try(:symbolize_keys)
8
8
  new_pools = ConnectionPools.new(key_name, store)
9
9
  new_pools.merge!(ActiveRecord::Base.connection_handler.connection_pools)
10
10
  ActiveRecord::Base.connection_handler = ActiveRecord::ConnectionAdapters::ConnectionHandler.new(new_pools)
11
11
  end
12
12
 
13
13
  def reset_connection_handler
14
+ @default_config = nil
14
15
  ActiveRecord::Base.connection_handler = ActiveRecord::ConnectionAdapters::ConnectionHandler.new
15
16
  end
16
17
 
17
18
  def with_connection_pool(config, &block)
18
19
  self.current_connection_pool_config = config = config.symbolize_keys
19
20
  if ActiveRecord::Base.connection_pool.nil?
20
- ActiveRecord::Base.establish_connection(@base_config.merge(config))
21
+ ActiveRecord::Base.establish_connection((@default_config || {}).merge(config))
21
22
  end
22
23
  yield if block_given?
23
24
  ensure
@@ -25,7 +26,7 @@ module ActiveRecordPartitioning
25
26
  end
26
27
 
27
28
  def current_connection_pool_config
28
- Thread.current[:current_connection_pool_config]
29
+ Thread.current[:current_connection_pool_config] || @default_config
29
30
  end
30
31
 
31
32
  def current_connection_pool_config=(config)
@@ -34,6 +34,10 @@ module ActiveRecordPartitioning
34
34
  @store.each_value(&block)
35
35
  end
36
36
 
37
+ def each(&block)
38
+ @store.each(&block)
39
+ end
40
+
37
41
  def size
38
42
  @store.size
39
43
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord_partitioning
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 2
10
- version: 0.0.2
9
+ - 3
10
+ version: 0.0.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Xiao Li