Class: Redis::Store::Factory
- Inherits:
-
Object
- Object
- Redis::Store::Factory
- Defined in:
- lib/redis/store/factory.rb
Constant Summary collapse
- DEFAULT_PORT =
6379
Class Method Summary collapse
- .create(*options) ⇒ Object
- .extract_host_options_from_hash(options) ⇒ Object
- .extract_host_options_from_uri(uri) ⇒ Object
- .host_options?(options) ⇒ Boolean
- .normalize_key_names(options) ⇒ Object
-
.resolve(uri) ⇒ Object
:api: private.
Instance Method Summary collapse
- #create ⇒ Object
-
#initialize(*options) ⇒ Factory
constructor
A new instance of Factory.
Constructor Details
#initialize(*options) ⇒ Factory
Returns a new instance of Factory.
12 13 14 15 16 |
# File 'lib/redis/store/factory.rb', line 12 def initialize(*) @addresses = [] @options = {} () end |
Class Method Details
.create(*options) ⇒ Object
8 9 10 |
# File 'lib/redis/store/factory.rb', line 8 def self.create(*) new().create end |
.extract_host_options_from_hash(options) ⇒ Object
38 39 40 41 42 43 44 45 |
# File 'lib/redis/store/factory.rb', line 38 def self.() = normalize_key_names() if () else nil end end |
.extract_host_options_from_uri(uri) ⇒ Object
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/redis/store/factory.rb', line 67 def self.(uri) uri = URI.parse(uri) if uri.scheme == "unix" = { :path => uri.path } else _, db, namespace = if uri.path uri.path.split(/\//) end = { :scheme => uri.scheme, :host => uri.hostname, :port => uri.port || DEFAULT_PORT, :password => uri.password.nil? ? nil : CGI.unescape(uri.password.to_s) } [:db] = db.to_i if db [:namespace] = namespace if namespace end if uri.query query = Hash[URI.decode_www_form(uri.query)] query.each do |(key, value)| [key.to_sym] = value end end end |
.host_options?(options) ⇒ Boolean
63 64 65 |
# File 'lib/redis/store/factory.rb', line 63 def self.() .keys.any? { |n| [:host, :db, :port, :path].include?(n) } end |
.normalize_key_names(options) ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/redis/store/factory.rb', line 47 def self.normalize_key_names() = .dup if .key?(:key_prefix) && !.key?(:namespace) [:namespace] = .delete(:key_prefix) # RailsSessionStore end [:raw] = case when .key?(:serializer) [:serializer].nil? when .key?(:marshalling) ![:marshalling] else false end end |
.resolve(uri) ⇒ Object
:api: private
30 31 32 33 34 35 36 |
# File 'lib/redis/store/factory.rb', line 30 def self.resolve(uri) #:api: private if uri.is_a?(Hash) (uri) else (uri) end end |