Sha256: c7960f3672143c21b24e5b225b8d9bc6cebf8918393bd76e552044da156e2ed9
Contents?: true
Size: 997 Bytes
Versions: 1
Compression:
Stored size: 997 Bytes
Contents
# Timed LRU [](https://github.com/bsm/timed_lru/actions/workflows/ruby.yml) [](https://gemnasium.com/bsm/timed_lru) My implementation of a simple, thread-safe LRU with (optional) TTLs and constant time operations. There are many LRUs for Ruby available but I was unable to find one that matches all three requirements. ## Install Install it via `gem`: ```ruby gem install timed_lru ``` Or just bundle it with your project. ## Usage Example ```ruby # Initialize with a max size (default: 100) and a TTL (default: none) lru = TimedLRU.new max_size: 3, ttl: 5 # Add values lru["a"] = "value 1" lru["b"] = "value 2" lru["c"] = "value 3" lru.keys # => ["a", "b"] # Wait a second sleep(1) # Add more values lru["d"] = "value 4" lru.keys # => ["b", "c", "d"] # Sleep a little longer sleep(4) lru["c"] # => "value 3" lru.keys # => ["c", "d"] ```
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
timed_lru-0.5.1 | README.md |