Skip to content

Commit 0e05ec1

Browse files
committed
Extract module Expiration
1 parent e9a50e6 commit 0e05ec1

File tree

3 files changed

+23
-10
lines changed

3 files changed

+23
-10
lines changed

lib/kredis.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
require "kredis/namespace"
1212
require "kredis/type_casting"
1313
require "kredis/default_values"
14+
require "kredis/expiration"
1415
require "kredis/types"
1516
require "kredis/attributes"
1617

lib/kredis/expiration.rb

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# frozen_string_literal: true
2+
3+
module Kredis::Expiration
4+
extend ActiveSupport::Concern
5+
6+
included do
7+
proxying :ttl, :expire
8+
attr_accessor :expires_in
9+
end
10+
11+
private
12+
def with_expiration(&block)
13+
result = block.call
14+
if expires_in && ttl < 0
15+
expire expires_in.to_i
16+
end
17+
result
18+
end
19+
end

lib/kredis/types/list.rb

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@
22

33
class Kredis::Types::List < Kredis::Types::Proxying
44
prepend Kredis::DefaultValues
5+
include Kredis::Expiration
56

6-
proxying :lrange, :lrem, :lpush, :ltrim, :rpush, :exists?, :del, :expire, :ttl
7+
proxying :lrange, :lrem, :lpush, :ltrim, :rpush, :exists?, :del
78

8-
attr_accessor :typed, :expires_in
9+
attr_accessor :typed
910

1011
def elements
1112
strings_to_types(lrange(0, -1) || [], typed)
@@ -46,12 +47,4 @@ def last(n = nil)
4647
def set_default
4748
append default
4849
end
49-
50-
def with_expiration(&block)
51-
result = block.call
52-
if expires_in && ttl < 0
53-
expire expires_in.to_i
54-
end
55-
result
56-
end
5750
end

0 commit comments

Comments
 (0)