bellbro 0.2.1 → 0.2.2

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: eaf4bedfab71b34f1b6e366ace3d9adb8b22df2b
4
- data.tar.gz: 4c8743c4925b0765843210d5bd52c3b06dff0a87
3
+ metadata.gz: 1ddf069f8fb7bf7c4cb1d241cbbaf0071605de1f
4
+ data.tar.gz: 1acbf9a7c2014a9c5bd08865555690c73b1b9050
5
5
  SHA512:
6
- metadata.gz: d0cd386a2c657278181334bc821796d207f1d2080928eb09d95794b6150e50f6ff8c1c104c480a90c1d15f3847301035e039fde77905fdeb033d4a9456248d5c
7
- data.tar.gz: 56000b7d618440b127cd9cb58ee700ee7a736198b9f88716c45418434871c15a2c1c81324139d3fb3623cfb1f5e55561e773c2c5ce23b32b03e30c90f5b1eeb6
6
+ metadata.gz: e9d3ed63c20286ba8dadd89324fadfd0acf4b246bfd60b83df84ff55405c409c89e871b798db87b193acf30279deff3ab36950b74dd1fdff89f54fc3cb23b684
7
+ data.tar.gz: 3cfd2c21df9e06166be02c4567e0a64d11b19f92c076e6e502f0df09bffadfa7a096356d0799a60428cbd3fa50f6e18c13a368a356502cde962593fc7cefe366
@@ -3,22 +3,59 @@ module Bellbro
3
3
  return unless defined?(Rails)
4
4
  filename = "#{Rails.root}/config/redis.yml"
5
5
  return unless File.exists?(filename)
6
- config = YAML.load_file(filename)[Rails.env]
6
+ config = YAML.load_file(filename)[Rails.env].symbolize_keys
7
7
  configure_bellbro(config)
8
+ setup_pool(config)
8
9
  end
9
10
 
10
11
  def self.configure_bellbro(config)
11
- redis_url = Figaro.env.redis_url
12
- databases = ThreadSafe::Cache.new
13
- config['databases'].each do |name, db|
14
- puts "## Db name #{name} mapped to #{db}"
15
- databases[name.to_sym] = db
12
+ redis_config = ThreadSafe::Cache.new
13
+
14
+ config.each do |name, c|
15
+ base_url = Figaro.env.send c['url'].downcase
16
+ db = c['database']
17
+ url = generate_full_url(base_url, db)
18
+
19
+ redis_config[name] = {
20
+ size: c['pool'],
21
+ url: url,
22
+ database: db,
23
+ timeout: c['timeout'] || 5,
24
+ network_timeout: c['network_timeout'] || 5
25
+ }
26
+ end
27
+
28
+ Bellbro::Settings.configure do |con|
29
+ con.redis_config = redis_config
30
+ end
31
+ end
32
+
33
+ def self.setup_pool(config)
34
+ redis_pool = ThreadSafe::Cache.new
35
+ redis_config = Bellbro::Settings.redis_config
36
+
37
+ config.each_key do |name|
38
+ next if name == :sidekiq
39
+ puts "# Configuring pool #{name} with size #{redis_config[name][:size]} on #{redis_config[name][:url]}"
40
+ redis_pool[name] = ConnectionPool.new(
41
+ redis_config[name].slice(:size, :timeout)
42
+ ) do
43
+ Redis.new(
44
+ redis_config[name].slice(:url, :network_timeout)
45
+ )
46
+ end
16
47
  end
17
48
 
18
49
  Bellbro::Settings.configure do |con|
19
- con.redis_databases = databases
20
- con.redis_url = redis_url
21
- con.redis_pool_size = config['pool']
50
+ con.redis_pool = redis_pool
51
+ end
52
+ end
53
+
54
+ def self.generate_full_url(base_url, db)
55
+ if base_url[-1,1] == "/"
56
+ "#{base_url}#{db}"
57
+ else
58
+ "#{base_url}/#{db}"
22
59
  end
23
60
  end
24
61
  end
@@ -15,15 +15,14 @@ module Bellbro
15
15
 
16
16
  def with_connection
17
17
  retryable(sleep: 0.5) do
18
- Bellbro::Settings.redis_pool.with do |c|
19
- c.select(model_db)
18
+ model_pool.with do |c|
20
19
  yield c
21
20
  end
22
21
  end
23
22
  end
24
23
 
25
- def model_db
26
- @model_db ||= Bellbro::Settings.redis_databases[@default_db_name]
24
+ def model_pool
25
+ @model_pool ||= Bellbro::Settings.redis_pool[@default_db_name]
27
26
  end
28
27
  end
29
28
 
@@ -2,7 +2,7 @@ module Bellbro
2
2
  module Settings
3
3
 
4
4
  class SettingsData < Struct.new(
5
- :logger, :env, :redis_databases, :redis_pool_size, :redis_url, :redis_pool
5
+ :logger, :env, :redis_config, :redis_pool
6
6
  )
7
7
  end
8
8
 
@@ -26,26 +26,12 @@ module Bellbro
26
26
 
27
27
  def self.redis_pool
28
28
  return unless configured?
29
- configuration.redis_pool ||= begin
30
- ConnectionPool.new(timeout: 5, size: redis_pool_size) do
31
- Redis.new(url: redis_url, network_timeout: 5)
32
- end
33
- end
29
+ configuration.redis_pool
34
30
  end
35
31
 
36
- def self.redis_databases
32
+ def self.redis_config
37
33
  return unless configured?
38
- configuration.redis_databases
39
- end
40
-
41
- def self.redis_pool_size
42
- return unless configured?
43
- configuration.redis_pool_size
44
- end
45
-
46
- def self.redis_url
47
- return unless configured?
48
- configuration.redis_url
34
+ configuration.redis_config
49
35
  end
50
36
 
51
37
  def self.logger
@@ -1,3 +1,3 @@
1
1
  module Bellbro
2
- VERSION = '0.2.1'
2
+ VERSION = '0.2.2'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bellbro
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jon Stokes
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-13 00:00:00.000000000 Z
11
+ date: 2015-02-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement