bellbro 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
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