diff --git a/lib/kredis/types/list.rb b/lib/kredis/types/list.rb index cbda3bd..a686709 100644 --- a/lib/kredis/types/list.rb +++ b/lib/kredis/types/list.rb @@ -24,4 +24,8 @@ def append(*elements) def clear del end + + def last(n = nil) + n ? lrange(-n, -1) : lrange(-1, -1).first + end end diff --git a/test/types/list_test.rb b/test/types/list_test.rb index 7e7aa5f..cd125a3 100644 --- a/test/types/list_test.rb +++ b/test/types/list_test.rb @@ -41,6 +41,16 @@ class ListTest < ActiveSupport::TestCase assert_equal [], @list.elements end + test "last" do + @list.append(%w[ 1 2 3 ]) + assert_equal "3", @list.last + end + + test "last(n)" do + @list.append(%w[ 1 2 3 ]) + assert_equal %w[ 2 3 ], @list.last(2) + end + test "typed as datetime" do @list = Kredis.list "mylist", typed: :datetime