in_memory_cache 1.3 → 1.4

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
  SHA256:
3
- metadata.gz: 7822ce52a7164bcd03ca1c2ffa7216bcd2551d02f3479f33c40d158c4181b37a
4
- data.tar.gz: 23be6c6826e6fc2d5d2dcd58651a9a97ae2748d04a11ec3c2d179983b8967f45
3
+ metadata.gz: 5e00147ae8aafb2450fc65573ea55d77241be8930c97061de3291b0d99f1ce27
4
+ data.tar.gz: aac7b7750272fe053149f80c92a1b53175713a48e5e05e57f88a9febce6a19ff
5
5
  SHA512:
6
- metadata.gz: 4292b9ef27f4a404198da447abd4af3686cdb3d03d89a816f8e351174484bd25758593405cd0186c2453d12b618f13303f5c86f2382432b60fe01a87e1450827
7
- data.tar.gz: 974c0eae30742595a025609a1917a57ef6a19168d7dc52ebc0daa8e4d30503a1e8bc8124cfdbef3944518bcc647c66b54b98a65fdf636aea26530f8d7dc1241a
6
+ metadata.gz: 365800d7a07f85d3a8350fdefde78882658394209a07cffdf43c5b0c63a5eb5a053e70ab58e7b0b79d8a7cfe283f55cfa96c8dc2890bfe08bddca7b1649f8a05
7
+ data.tar.gz: 1b6eb448222b2d88aab2e7d5e65e54a5f5e4403ed796f80c1dc958cd0385c74f034898a720bf2a6495ff21a7376a020adf74f700972982fac90ca4fc9d26b3ac
@@ -32,7 +32,7 @@ module MemoryCache
32
32
  end
33
33
 
34
34
  @data[key] = value
35
- @key_access_store[key] = Time.now.utc.to_i
35
+ set_key_access_strategy(key)
36
36
  @cache_size -= old_value_size if old_value_present
37
37
  @cache_size += compute_value_size(value)
38
38
  return true
@@ -43,7 +43,7 @@ module MemoryCache
43
43
  # return value of the key
44
44
  def read(key, options = {})
45
45
  synchronize_block do
46
- @key_access_store[key] = Time.now.utc.to_i
46
+ set_key_access_strategy(key)
47
47
  return @data[key] ? dup_value(@data[key]) : nil
48
48
  end
49
49
  end
@@ -77,7 +77,7 @@ module MemoryCache
77
77
  private
78
78
 
79
79
  def prune_keys(new_allocate_size = 0)
80
- keys = synchronize_block { @key_access_store.keys.sort { |a, b| @key_access_store[a] <=> @key_access_store[b] } }
80
+ keys = prune_keys_in_order
81
81
  loop_counter = 0
82
82
  keys.each do |key|
83
83
  delete(key)
@@ -111,5 +111,13 @@ module MemoryCache
111
111
  value.is_a?(String) ? value.dup : value
112
112
  end
113
113
 
114
+ def set_key_access_strategy(key)
115
+ @key_access_store[key] = Time.now.utc.to_i
116
+ end
117
+
118
+ def prune_keys_in_order
119
+ synchronize_block { @key_access_store.keys.sort { |a, b| @key_access_store[a] <=> @key_access_store[b] } }
120
+ end
121
+
114
122
  end
115
123
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: in_memory_cache
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.3'
4
+ version: '1.4'
5
5
  platform: ruby
6
6
  authors:
7
7
  - kathir