summaryrefslogtreecommitdiff
path: root/lib/gitlab/redis_config.rb
blob: 4949c6db5392b88b5fa1c5708957d7bf72251896 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
module Gitlab
  class RedisConfig
    attr_reader :url

    def self.url
      new.url
    end
    
    def self.redis_store_options
      url = new.url
      redis_config_hash = Redis::Store::Factory.extract_host_options_from_uri(url)
      # Redis::Store does not handle Unix sockets well, so let's do it for them
      redis_uri = URI.parse(url)
      if redis_uri.scheme == 'unix'
        redis_config_hash[:path] = redis_uri.path
      end
      redis_config_hash
    end

    def initialize(rails_env=nil)
      rails_env ||= Rails.env
      config_file = File.expand_path('../../../config/resque.yml', __FILE__)
  
      @url = "redis://localhost:6379"
      if File.exists?(config_file)
        @url =YAML.load_file(config_file)[rails_env]
      end
    end
  end
end