twelvefactor-cache 1.0.2 → 1.0.3

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: 2ebfbd6dedd773a7468d990ec37eb0f8a504f9ea
4
- data.tar.gz: 07ce429510f3fa11f64559de4915d938110efd71
3
+ metadata.gz: 83942a78fdade4150ff804b1e79f34b3f5c5d38b
4
+ data.tar.gz: a3f1cb3f3f99a27a5b8677aea736255283f2b925
5
5
  SHA512:
6
- metadata.gz: 47d7ecf052b936d7e3aac0e8d7886b7fb5878fae05c52d67696151234d76f1dc83fd3f8e2f09d4f641f8ef9fc379f0133cf68b517006af25e346eacd15958484
7
- data.tar.gz: 0bb3fd3907830d8ee88b06e65889eebdbad70aca0cfd32da7e0801bc20e088677ead4f294f7d32895c3e3d496975cdd553535ee617b69872ba1999e8afa1b41d
6
+ metadata.gz: 590c822eba81c5ee210ed87a35317bd1b7063a3682403b311c24e8a988b0cbf293c8d8b81c6d596cb443974adc16bbb05b4ba89973e0b7e47d813622340ebbb6
7
+ data.tar.gz: ea2a26bfdb45665dd4d9791b4b9d4cdb13b336b73da300b91ec8695a9ad292edfd719fa4f1e629c1a4a1a6bf27be6a133cd74c7be4a8bc6003484058ba3fd807
@@ -10,7 +10,7 @@ require "twelvefactor/environment/cache/null"
10
10
  require "twelvefactor/environment/cache/redis"
11
11
 
12
12
  class Twelvefactor::Environment::Cache
13
- VERSION = "1.0.2".freeze
13
+ VERSION = "1.0.3".freeze
14
14
 
15
15
  HANDLERS = {
16
16
  "dalli" => Dalli,
@@ -1,8 +1,47 @@
1
1
  # frozen_string_literal: true
2
+ require "uri"
3
+
2
4
  class Twelvefactor::Environment::Cache::Redis
3
5
  def self.apply app, cache_url
4
6
  config = app.config
5
7
 
6
- config.cache_store = :redis_store, cache_url.to_s
8
+ config.cache_store = [
9
+ :redis_store,
10
+ cache_base_url(cache_url).to_s,
11
+ options(cache_url.query)
12
+ ]
13
+ end
14
+
15
+ def self.cache_base_url url
16
+ base = url.dup
17
+ base.query = nil
18
+ base
19
+ end
20
+
21
+ def self.options query
22
+ normalize_types raw_options query
23
+ end
24
+
25
+ def self.normalize_types options
26
+ normalized = {}
27
+
28
+ if options.key? :expires_in
29
+ normalized[:expires_in] = options[:expires_in].to_i
30
+ end
31
+
32
+ if options.key? :compress
33
+ normalized[:compress] = options[:compress] == "true"
34
+ end
35
+
36
+ options.merge normalized
37
+ end
38
+
39
+ def self.raw_options query
40
+ return {} unless query
41
+
42
+ CGI
43
+ .parse(query)
44
+ .map { |k, val| [k.to_sym, val.first] }
45
+ .to_h
7
46
  end
8
47
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twelvefactor-cache
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Konstantin Burnaev
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-09-12 00:00:00.000000000 Z
11
+ date: 2016-09-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: twelvefactor