vfr_utils 0.0.4 → 0.0.5

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: 1695abe0e0d89b99b75997de40491f4333e9c4ef
4
- data.tar.gz: ef86c8f2641e2e65c6e976705c5c082483d0dedc
3
+ metadata.gz: 2a642daba436e9da29e586f7a629e183c3b58b6f
4
+ data.tar.gz: fbb102d07e6a0b14d102534eb21440a20dfb367c
5
5
  SHA512:
6
- metadata.gz: b9fac33661f601a965891ce722a13a47bc70563089885c3d66e95d4f62407337884d7f179bc2400b2668c71583c63eb7b5c925dc5e875e6793d9f106f1a300bc
7
- data.tar.gz: 7c3070db10b930084d003d54c37d99c8a44d9a365034d60d2105d0201be819501fa3c9f87b728984d96bc0afc27289346d427d04b890c21fae0142e45d4be6b9
6
+ metadata.gz: a13f934196d079cc37faa3e95a380bee3ecc659a11ba6e318a5ac6c30cb120f24e7dde5668d51f6be43ad439df54c1281c72f69c5deb41b534d3ee4dcf9310a3
7
+ data.tar.gz: 3238517329b0d90f63711c6a476ee7e7f8c5bfd8ce0719dbd362dd8f22c21935f23a67399143ef0e9f97e1e1ba720a762af0456bb9c4d696c3a193d97dbab889
@@ -3,10 +3,12 @@ module VfrUtils
3
3
 
4
4
  def initialize(config)
5
5
  @config = config
6
+ init_redis
6
7
  end
7
8
 
8
9
  def get(k, &blk)
9
10
  return get_files(k, &blk) if config.cache_backend == :files
11
+ return get_redis(k, &blk) if config.cache_backend == :redis
10
12
  raise "Unsupported cache backend: #{config.cache_backend}"
11
13
  end
12
14
 
@@ -16,6 +18,12 @@ module VfrUtils
16
18
  @config
17
19
  end
18
20
 
21
+ def init_redis
22
+ return unless config.cache_backend == :redis
23
+ return unless @redis.nil?
24
+ @redis = Redis.new(url: config.redis_url)
25
+ end
26
+
19
27
  def get_files(k)
20
28
  cache_file_path = "#{config.cache_directory}/#{k}.tmp"
21
29
  if File.exists?(cache_file_path)
@@ -29,5 +37,14 @@ module VfrUtils
29
37
  File.write(cache_file_path, Marshal.dump(v))
30
38
  v
31
39
  end
40
+
41
+ def get_redis(k)
42
+ init_redis
43
+ v = @redis.get(k)
44
+ return Marshal.load(v) unless v.nil?
45
+ v = yield
46
+ @redis.setex(k, config.cache_lifetime, Marshal.dump(v))
47
+ v
48
+ end
32
49
  end
33
50
  end
@@ -1,3 +1,3 @@
1
1
  module VfrUtils
2
- VERSION='0.0.4'
2
+ VERSION='0.0.5'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vfr_utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bartek Wilczek
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-12-28 00:00:00.000000000 Z
11
+ date: 2016-12-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0.9'
41
+ - !ruby/object:Gem::Dependency
42
+ name: redis
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.2'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.2'
41
55
  description: This gem provides set of classes and a CLI for obtaining information
42
56
  like NOTAM, METAR and TAF
43
57
  email: