kredis 1.0.1 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of kredis might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/README.md +2 -1
- data/lib/kredis/attributes.rb +6 -2
- data/lib/kredis/types/callbacks_proxy.rb +2 -1
- data/lib/kredis/types/hash.rb +1 -0
- data/lib/kredis/types/list.rb +5 -1
- data/lib/kredis/types/unique_list.rb +8 -2
- data/lib/kredis/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4960df7b832b98970196c71cff95825187bbc49e7457ee13436a5408b841ef96
|
4
|
+
data.tar.gz: 3e6bf39db78519fd2a15e405a46d59cc20d0b789581487f968e7b32efd4c173f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4f5bf3d8078530a6a28a2f4f34e85f384ea3e452777902831b0bb144d28dfaa7d95c2bf7d8646c4e1eab427d5f3c293ef351eb069ca23f6bebce8a644ba6df85
|
7
|
+
data.tar.gz: b6a0eaa250c74167473ade0f3ea77636d19faf3dd0c26a563fb22f3adf9602d98fb159fb352a188ad1abb08f3b5f6c805a1fd5657f4b16e3484b4a8703ed3839
|
data/README.md
CHANGED
@@ -171,6 +171,7 @@ class Person < ApplicationRecord
|
|
171
171
|
kredis_list :names_with_custom_key, key: ->(p) { "person:#{p.id}:names_customized" }
|
172
172
|
kredis_unique_list :skills, limit: 2
|
173
173
|
kredis_enum :morning, values: %w[ bright blue black ], default: "bright"
|
174
|
+
kredis_counter :steps, expires_in: 1.hour
|
174
175
|
end
|
175
176
|
|
176
177
|
person = Person.find(5)
|
@@ -231,7 +232,7 @@ The above code could be added to either `config/environments/production.rb` or a
|
|
231
232
|
|
232
233
|
### Configure how the redis client is created
|
233
234
|
|
234
|
-
You can configure how the redis client is created by setting `config.connector` in your `application.rb`:
|
235
|
+
You can configure how the redis client is created by setting `config.kredis.connector` in your `application.rb`:
|
235
236
|
|
236
237
|
```ruby
|
237
238
|
config.kredis.connector = ->(config) { SomeRedisProxy.new(config) }
|
data/lib/kredis/attributes.rb
CHANGED
@@ -62,14 +62,18 @@ module Kredis::Attributes
|
|
62
62
|
kredis_connection_with __method__, name, key, available: available, config: config, after_change: after_change
|
63
63
|
end
|
64
64
|
|
65
|
-
def kredis_counter(name, key: nil, config: :shared, after_change: nil)
|
66
|
-
kredis_connection_with __method__, name, key, config: config, after_change: after_change
|
65
|
+
def kredis_counter(name, key: nil, config: :shared, after_change: nil, expires_in: nil)
|
66
|
+
kredis_connection_with __method__, name, key, config: config, after_change: after_change, expires_in: expires_in
|
67
67
|
end
|
68
68
|
|
69
69
|
def kredis_hash(name, key: nil, typed: :string, config: :shared, after_change: nil)
|
70
70
|
kredis_connection_with __method__, name, key, typed: typed, config: config, after_change: after_change
|
71
71
|
end
|
72
72
|
|
73
|
+
def kredis_boolean(name, key: nil, config: :shared, after_change: nil, expires_in: nil)
|
74
|
+
kredis_connection_with __method__, name, key, config: config, after_change: after_change, expires_in: expires_in
|
75
|
+
end
|
76
|
+
|
73
77
|
private
|
74
78
|
def kredis_connection_with(method, name, key, **options)
|
75
79
|
ivar_symbol = :"@#{name}_#{method}"
|
@@ -11,7 +11,8 @@ class Kredis::Types::CallbacksProxy
|
|
11
11
|
Kredis::Types::List => %i[ remove prepend append << ],
|
12
12
|
Kredis::Types::Scalar => %i[ value= clear ],
|
13
13
|
Kredis::Types::Set => %i[ add << remove replace take clear ],
|
14
|
-
Kredis::Types::Slots => %i[ reserve release reset ]
|
14
|
+
Kredis::Types::Slots => %i[ reserve release reset ],
|
15
|
+
Kredis::Types::UniqueList => %i[ remove prepend append << ]
|
15
16
|
}
|
16
17
|
|
17
18
|
def initialize(type, callback)
|
data/lib/kredis/types/hash.rb
CHANGED
data/lib/kredis/types/list.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
class Kredis::Types::List < Kredis::Types::Proxying
|
2
|
-
proxying :lrange, :lrem, :lpush, :rpush, :exists
|
2
|
+
proxying :lrange, :lrem, :lpush, :rpush, :exists?, :del
|
3
3
|
|
4
4
|
attr_accessor :typed
|
5
5
|
|
@@ -20,4 +20,8 @@ class Kredis::Types::List < Kredis::Types::Proxying
|
|
20
20
|
rpush types_to_strings(elements, typed) if elements.flatten.any?
|
21
21
|
end
|
22
22
|
alias << append
|
23
|
+
|
24
|
+
def clear
|
25
|
+
del
|
26
|
+
end
|
23
27
|
end
|
@@ -5,19 +5,25 @@ class Kredis::Types::UniqueList < Kredis::Types::List
|
|
5
5
|
attr_accessor :typed, :limit
|
6
6
|
|
7
7
|
def prepend(elements)
|
8
|
+
elements = Array(elements).uniq
|
9
|
+
return if elements.empty?
|
10
|
+
|
8
11
|
multi do
|
9
12
|
remove elements
|
10
13
|
super
|
11
14
|
ltrim 0, (limit - 1) if limit
|
12
|
-
end
|
15
|
+
end
|
13
16
|
end
|
14
17
|
|
15
18
|
def append(elements)
|
19
|
+
elements = Array(elements).uniq
|
20
|
+
return if elements.empty?
|
21
|
+
|
16
22
|
multi do
|
17
23
|
remove elements
|
18
24
|
super
|
19
25
|
ltrim -limit, -1 if limit
|
20
|
-
end
|
26
|
+
end
|
21
27
|
end
|
22
28
|
alias << append
|
23
29
|
end
|
data/lib/kredis/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kredis
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kasper Timm Hansen
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2022-02-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -109,7 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
requirements: []
|
112
|
-
rubygems_version: 3.2.
|
112
|
+
rubygems_version: 3.2.32
|
113
113
|
signing_key:
|
114
114
|
specification_version: 4
|
115
115
|
summary: Higher-level data structures built on Redis.
|