Skip to content

Commit

Permalink
Merge pull request #16 from makinada/feature/values_method
Browse files Browse the repository at this point in the history
added #values method to mimic Hash#values
  • Loading branch information
SamSaffron committed Feb 2, 2017
2 parents 82d755e + b68c43e commit 519575f
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 0 deletions.
5 changes: 5 additions & 0 deletions lib/lru_redux/cache.rb
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,11 @@ def to_a
array.reverse!
end

def values
vals = @data.values
vals.reverse!
end

def delete(key)
@data.delete(key)
end
Expand Down
7 changes: 7 additions & 0 deletions lib/lru_redux/ttl/cache.rb
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,13 @@ def to_a
array.reverse!
end

def values
ttl_evict

vals = @data_lru.values
vals.reverse!
end

def delete(key)
ttl_evict

Expand Down
6 changes: 6 additions & 0 deletions lib/lru_redux/util/safe_sync.rb
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,12 @@ def to_a
end
end

def values
synchronize do
super
end
end

def delete(key)
synchronize do
super(key)
Expand Down
10 changes: 10 additions & 0 deletions test/cache_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -128,4 +128,14 @@ def test_each
assert_equal [[:c,3],[:b, 2]], pairs

end

def test_values
@c[:a] = 1
@c[:b] = 2
@c[:c] = 3
@c[:d] = 4

assert_equal [4,3,2], @c.values
assert_nil @c[:a]
end
end

0 comments on commit 519575f

Please sign in to comment.