iglu-ruby-client 0.2.0.beta.2 → 0.2.0.beta.3

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
  SHA256:
3
- metadata.gz: da51b71a2c43743d65d3ae8e8a757f7b6e30c95427260a61c67b759b56cd5c5a
4
- data.tar.gz: 5947d3b179e7ecb3077075c580fb5081654e7f3e335b8d5fb581e113489de455
3
+ metadata.gz: 639804d0a0d0e3000ebdf016eb18cfe82de1a5bd4fccf14e6c4fadf427fff099
4
+ data.tar.gz: 693980d18aebd691e106cf1140a01a906fbf467d69ae34196a2cc74e878713da
5
5
  SHA512:
6
- metadata.gz: 02afe73fd5dd697f5b036e6ae83273855db7bb5fcccb308428cd4a9663da55609d475c926f7b1b1776ed9a02e90f98c4f1134fb74da73470f381d51b9acafce5
7
- data.tar.gz: 7a3035dd22a5143b782f3ff0c49a01e8cbf07c2001e50cb46c169d4ef1a5b975771ede85499a624e601ea8447a980fb95854eacf54957ee494c929afa38230d6
6
+ metadata.gz: 39996ef92d933d8b9d47e21df020af4287edc519ab7c5f9546cfea38bb304c94f076760d284b9993e6d2aaa72da35faa7a40d90b12f3fb5436f1c471c304f27e
7
+ data.tar.gz: d8721692049d4780e3d1331003c885e45495cf0dc298bee52160ec785d91042005429d74107d6447e5c5c57301c4a9296f487b42c5076d6f89799418ad7cd9a4
@@ -16,12 +16,12 @@ module Iglu
16
16
 
17
17
  # Iglu Client. Able to fetch schemas only from Iglu Central
18
18
  class Resolver
19
- attr_reader :registries, :cache, :cache_ttl
19
+ attr_reader :registries, :cache, :cacheTtl
20
20
 
21
- def initialize(registries)
21
+ def initialize(registries, cacheTtl=60)
22
22
  @registries = registries.unshift(Registries.bootstrap)
23
23
  @cache = Hash.new
24
- @cache_ttl = 1 # hour
24
+ @cacheTtl = cacheTtl.nil? ? 60 : cacheTtl
25
25
  end
26
26
 
27
27
  # Lookup schema in cache or try to fetch
@@ -61,10 +61,12 @@ module Iglu
61
61
  raise cache_result
62
62
  else
63
63
  if cache_result.is_a? (Array)
64
- if (cache_result[1] - fetch_time).round / 3600 >= @cache_ttl
65
- @cache.delete(schema_key)
66
- end
67
- cache_result[0]
64
+ store_time = cache_result[1]
65
+ time_diff = (fetch_time - store_time).round
66
+ if time_diff >= @cacheTtl
67
+ @cache.delete(schema_key)
68
+ end
69
+ cache_result[0]
68
70
  else # backward compliance
69
71
  cache_result
70
72
  end
@@ -77,9 +79,9 @@ module Iglu
77
79
  schema = Registries.bootstrap.lookup_schema(schema_key)
78
80
  data = get_data(json)
79
81
  if JSON::Validator.validate!(schema, data)
80
- # cache_size = data[:cacheSize]
81
82
  registries = data[:repositories].map do |registry| parse_registry(registry) end
82
- Resolver.new(registries)
83
+ cacheTtl = json[:data][:cacheTtl]
84
+ Resolver.new(registries, cacheTtl)
83
85
  else
84
86
  throw IgluError.new "Invalid resolver configuration"
85
87
  end
@@ -10,5 +10,5 @@
10
10
  # See the Apache License Version 2.0 for the specific language governing permissions and limitations there under.
11
11
 
12
12
  module Iglu
13
- CLIENT_VERSION = '0.2.0.beta.2'
13
+ CLIENT_VERSION = '0.2.0.beta.3'
14
14
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iglu-ruby-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0.beta.2
4
+ version: 0.2.0.beta.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anton Parkhomenko