Skip to content

Commit 4b1ab12

Browse files
committed
Merge remote-tracking branch 'origin/main' into default-values-on-initialize
* origin/main: (22 commits) Add kredis_ordered_set for OrderedSet usage in models Add a development console Bump version for 1.5.0 Fix ordered set prepend bug (rails#115) Unique list with sorted set (rails#114) Eliminating Ruby Warnings (rails#112) CI against Redis 7, Ruby 3.1, and Ruby 3.2 (rails#113) Bump version for 1.4.0 Update nokogiri for compatibility Revert "Improved version of UniqueList: OrderedSet (rails#76)" (rails#111) Add `last` to lists (rails#97) Improved version of UniqueList: OrderedSet (rails#76) Return Time objects instead of deprecated DateTime (rails#106) Fix possible deserialization of untrusted data Typecast return of Set#take (rails#105) Declare Active Model dependency (rails#107) Address LogSubscriber deprecation (rails#98) Account for time zones in DateTime serializations (rails#102) Add sample to set (rails#100) Bump version for 1.3.0 ...
2 parents ef2eacb + 6e4f77c commit 4b1ab12

19 files changed

+274
-29
lines changed

.github/workflows/ci.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ jobs:
55
runs-on: ubuntu-latest
66
strategy:
77
matrix:
8-
redis_server: ["4", "5", "6.2"]
9-
ruby: ["2.7", "3.0"]
8+
redis_server: ["4", "5", "6", "7"]
9+
ruby: ["2.7", "3.0", "3.1", "3.2"]
1010

1111
name: Redis server ${{ matrix.redis_server }} - Ruby ${{ matrix.ruby }}
1212

1313
steps:
14-
- uses: actions/checkout@v2
14+
- uses: actions/checkout@v3
1515

1616
- name: Set up Ruby
1717
uses: ruby/setup-ruby@v1

Gemfile.lock

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
PATH
22
remote: .
33
specs:
4-
kredis (1.2.0)
4+
kredis (1.5.0)
5+
activemodel (>= 6.0.0)
56
activesupport (>= 6.0.0)
6-
redis (~> 4.2)
7+
redis (>= 4.2, < 6)
78

89
GEM
910
remote: https://rubygems.org/
@@ -70,6 +71,7 @@ GEM
7071
builder (3.2.4)
7172
byebug (11.1.3)
7273
concurrent-ruby (1.1.8)
74+
connection_pool (2.4.1)
7375
crass (1.0.6)
7476
erubi (1.10.0)
7577
globalid (0.4.2)
@@ -84,17 +86,17 @@ GEM
8486
marcel (1.0.1)
8587
method_source (1.0.0)
8688
mini_mime (1.0.3)
87-
mini_portile2 (2.5.0)
89+
mini_portile2 (2.8.2)
8890
minitest (5.14.4)
8991
nio4r (2.5.7)
90-
nokogiri (1.11.2)
91-
mini_portile2 (~> 2.5.0)
92+
nokogiri (1.15.2)
93+
mini_portile2 (~> 2.8.2)
9294
racc (~> 1.4)
93-
nokogiri (1.11.2-arm64-darwin)
95+
nokogiri (1.15.2-arm64-darwin)
9496
racc (~> 1.4)
95-
nokogiri (1.11.2-x86_64-darwin)
97+
nokogiri (1.15.2-x86_64-darwin)
9698
racc (~> 1.4)
97-
racc (1.5.2)
99+
racc (1.7.1)
98100
rack (2.2.3)
99101
rack-test (1.1.0)
100102
rack (>= 1.0, < 3)
@@ -125,7 +127,10 @@ GEM
125127
rake (>= 0.8.7)
126128
thor (~> 1.0)
127129
rake (13.0.3)
128-
redis (4.6.0)
130+
redis (5.0.6)
131+
redis-client (>= 0.9.0)
132+
redis-client (0.14.1)
133+
connection_pool
129134
sprockets (4.0.2)
130135
concurrent-ruby (~> 1.0)
131136
rack (> 1, < 3)
@@ -142,9 +147,9 @@ GEM
142147
zeitwerk (2.4.2)
143148

144149
PLATFORMS
145-
arm64-darwin-20
150+
arm64-darwin
146151
ruby
147-
x86_64-darwin-20
152+
x86_64-darwin
148153

149154
DEPENDENCIES
150155
byebug

README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,14 @@ unique_list << "5" # => LREM myuniquelist 0, "5" + R
6262
unique_list.remove(3) # => LREM myuniquelist 0, "3"
6363
[ "4", "2", "1", "5" ] == unique_list.elements # => LRANGE myuniquelist 0, -1
6464

65+
ordered_set = Kredis.ordered_set "myorderedset"
66+
ordered_set.append(%w[ 2 3 4 ]) # => ZADD myorderedset 1646131025.4953232 2 1646131025.495326 3 1646131025.4953272 4
67+
ordered_set.prepend(%w[ 1 2 3 4 ]) # => ZADD myorderedset -1646131025.4957051 1 -1646131025.495707 2 -1646131025.4957082 3 -1646131025.4957092 4
68+
ordered_set.append([])
69+
ordered_set << "5" # => ZADD myorderedset 1646131025.4960442 5
70+
ordered_set.remove(3) # => ZREM myorderedset 3
71+
[ "4", "2", "1", "5" ] == ordered_set.elements # => ZRANGE myorderedset 0 -1
72+
6573
set = Kredis.set "myset", typed: :datetime
6674
set.add(DateTime.tomorrow, DateTime.yesterday) # => SADD myset "2021-02-03 00:00:00 +0100" "2021-02-01 00:00:00 +0100"
6775
set << DateTime.tomorrow # => SADD myset "2021-02-03 00:00:00 +0100"

bin/console

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#!/usr/bin/env ruby
2+
3+
require "irb"
4+
require "bundler/inline"
5+
6+
gemfile do
7+
source "https://rubygems.org"
8+
gem "kredis", path: "../"
9+
end
10+
11+
12+
Kredis.configurator = Class.new { def config_for(name) { db: "2" } end }.new
13+
ActiveSupport::LogSubscriber.logger = ActiveSupport::Logger.new(STDOUT)
14+
15+
IRB.start

kredis.gemspec

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ Gem::Specification.new do |s|
1111

1212
s.required_ruby_version = ">= 2.7.0"
1313
s.add_dependency "activesupport", ">= 6.0.0"
14-
s.add_dependency "redis", "~> 4.2"
14+
s.add_dependency "activemodel", ">= 6.0.0"
15+
s.add_dependency "redis", ">= 4.2", "< 6"
1516
s.add_development_dependency "rails", ">= 6.0.0"
1617

1718
s.files = Dir["lib/**/*", "MIT-LICENSE", "README.md"]

lib/kredis/attributes.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ def kredis_set(name, key: nil, default: nil, typed: :string, config: :shared, af
5454
kredis_connection_with __method__, name, key, default: default, typed: typed, config: config, after_change: after_change
5555
end
5656

57+
def kredis_ordered_set(name, limit: nil, default: nil, key: nil, typed: :string, config: :shared, after_change: nil)
58+
kredis_connection_with __method__, name, key, default: default, limit: limit, typed: typed, config: config, after_change: after_change
59+
end
60+
5761
def kredis_slot(name, key: nil, config: :shared, after_change: nil)
5862
kredis_connection_with __method__, name, key, config: config, after_change: after_change
5963
end

lib/kredis/log_subscriber.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ def meta(event)
1515

1616
private
1717
def formatted_in(color, event, type: nil)
18-
color " Kredis #{type} (#{event.duration.round(1)}ms) #{event.payload[:message]}", color, true
18+
color " Kredis #{type} (#{event.duration.round(1)}ms) #{event.payload[:message]}", color, bold: true
1919
end
2020
end
2121

lib/kredis/migration.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@ def migrate(from:, to:, pipeline: nil)
3333
def delete_all(*key_patterns)
3434
log_migration "DELETE ALL #{key_patterns.inspect}" do
3535
if key_patterns.length > 1
36-
@redis.del *key_patterns
36+
@redis.del(*key_patterns)
3737
else
3838
each_key_batch_matching(key_patterns.first) do |keys, pipeline|
39-
pipeline.del *keys
39+
pipeline.del(*keys)
4040
end
4141
end
4242
end

lib/kredis/type/datetime.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ module Kredis
44
module Type
55
class DateTime < ActiveModel::Type::DateTime
66
def serialize(value)
7-
super&.iso8601(9)
7+
super&.utc&.iso8601(9)
88
end
99

1010
def cast_value(value)
11-
super&.to_datetime
11+
super&.to_time
1212
end
1313
end
1414
end

lib/kredis/type/json.rb

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,7 @@ def type
88
end
99

1010
def cast_value(value)
11-
if value.is_a? Hash
12-
value.stringify_keys
13-
else
14-
JSON.load(value)
15-
end
11+
JSON.parse(value)
1612
end
1713

1814
def serialize(value)

0 commit comments

Comments
 (0)