in_memory_cache 1.3 → 1.4

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: 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