fakeredis 0.9.0 → 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 472bc70d16d42ddd98a542825b81fdd5d8f7af18a8b704f5022046895ca5a867
4
- data.tar.gz: 7f0b48ebe4cfa88e99b9d949be3e0bd6816dbc3c0629062d42e0e1fce92a03fc
3
+ metadata.gz: 8f5bfa00feb72f7ffcaa7a1b0c2f316fe6f0e83c1a1e5d68f09f6243aeadca14
4
+ data.tar.gz: 8c31af643286808f7226f138278673d4523d9ef2fdf39a67336519d762ea9385
5
5
  SHA512:
6
- metadata.gz: fcef2e419257364269044dbd0d8b21d0aacdaeb613d91e83abaef77a18a6c5551e72ded9e90ac334d17760aaf80e4c0fec9fd72f15e3a80efe63c7be5b3f2903
7
- data.tar.gz: 6076a543910d3eec4a6fb8912ce1be5b44bea9fa71cbd76fd62f8b0a130eb97d85a4a2390d05ef5bd2a1eae699c487b01de537f9781c8aa39553c198f53c9618
6
+ metadata.gz: 5164767bdeed993d36fdaf7410c8a79d933b1e3d3958437e5346b080c5ac1c3f78b0f0a4ba77f9438a84f5480cd9f1629aead81e58c1bb9999a258009a944eff
7
+ data.tar.gz: d337bec1b6a2d54dfa96686cc177ce3c15b660205f8d5c71f7e0b52bee9a40909642604dd70b975755ede946091bc55fec82d644c82df02f2305e0e2d27e630b
@@ -22,7 +22,7 @@ jobs:
22
22
  fail-fast: false
23
23
  matrix:
24
24
  os: [ubuntu, macos]
25
- ruby: [3.0, 3.1, 3.2, head, debug, jruby, jruby-head, truffleruby, truffleruby-head]
25
+ ruby: [2.7, 3.0, 3.1, 3.2, head, debug, jruby, jruby-head, truffleruby, truffleruby-head]
26
26
  continue-on-error: ${{ endsWith(matrix.ruby, 'head') || matrix.ruby == 'debug' }}
27
27
  steps:
28
28
  - uses: actions/checkout@v3
data/README.md CHANGED
@@ -87,7 +87,7 @@ require 'fakeredis/minitest'
87
87
 
88
88
  ## Acknowledgements
89
89
 
90
- Thanks to [all contributors](https://github.com/guilleiguaran/fakeredis/graphs/contributors), specially to [Caius Durling](https://github.com/caius) the most active one.
90
+ Thanks to [all contributors](https://github.com/guilleiguaran/fakeredis/graphs/contributors).
91
91
 
92
92
  ## Contributing to FakeRedis
93
93
 
@@ -74,7 +74,7 @@ module FakeRedis
74
74
  def georadiusbymember(*args)
75
75
  args = args.dup
76
76
  raise_argument_error("georadiusbymember") if args.size < 4
77
- key, member, radius, unit, *rest = args
77
+ key, member, radius, unit, *_ = args
78
78
  raise_argument_error("georadiusbymember") unless DISTANCE_UNITS.has_key?(unit)
79
79
  radius *= DISTANCE_UNITS[unit]
80
80
 
@@ -1,3 +1,3 @@
1
1
  module FakeRedis
2
- VERSION = "0.9.0"
2
+ VERSION = "0.9.1"
3
3
  end
@@ -122,7 +122,7 @@ class Redis
122
122
  "OK"
123
123
  end
124
124
 
125
- def auth(password)
125
+ def auth(*args)
126
126
  "OK"
127
127
  end
128
128
 
@@ -562,11 +562,17 @@ class Redis
562
562
  end
563
563
 
564
564
  # 0 = false, 1 = true unless an array was passed in
565
- return result == 1 unless should_return_int
565
+ if Redis.sadd_returns_boolean && !should_return_int
566
+ return result == 1
567
+ end
566
568
 
567
569
  result
568
570
  end
569
571
 
572
+ def sadd?(key, value)
573
+ sadd(key, value) == 1
574
+ end
575
+
570
576
  def srem(key, value)
571
577
  data_type_check(key, ::Set)
572
578
  raise_argument_error('srem') if Array(value).empty?
@@ -775,28 +781,28 @@ class Redis
775
781
  def hset(key, *fields)
776
782
  fields = fields.first if fields.size == 1 && fields.first.is_a?(Hash)
777
783
  raise_argument_error('hset') if fields.empty?
778
-
784
+
779
785
  is_list_of_arrays = fields.all?{|field| field.instance_of?(Array)}
780
-
786
+
781
787
  raise_argument_error('hmset') if fields.size.odd? and !is_list_of_arrays
782
788
  raise_argument_error('hmset') if is_list_of_arrays and !fields.all?{|field| field.length == 2}
783
-
789
+
784
790
  data_type_check(key, Hash)
785
791
  insert_count = 0
786
792
  data[key] ||= {}
787
-
793
+
788
794
  if fields.is_a?(Hash)
789
795
  insert_count = fields.keys.size - (data[key].keys & fields.keys).size
790
-
796
+
791
797
  data[key].merge!(fields)
792
798
  else
793
799
  fields.each_slice(2) do |field|
794
800
  insert_count += 1 if data[key][field[0].to_s].nil?
795
-
801
+
796
802
  data[key][field[0].to_s] = field[1].to_s
797
803
  end
798
804
  end
799
-
805
+
800
806
  insert_count
801
807
  end
802
808
 
@@ -1150,12 +1156,12 @@ class Redis
1150
1156
  count.nil? ? results.first : results.flatten
1151
1157
  end
1152
1158
 
1153
- def bzpopmax(*args)
1154
- bzpop(:bzpopmax, args)
1159
+ def bzpopmax(*args, timeout: 0)
1160
+ bzpop(:bzpopmax, args, timeout)
1155
1161
  end
1156
1162
 
1157
- def bzpopmin(*args)
1158
- bzpop(:bzpopmin, args)
1163
+ def bzpopmin(*args, timeout: 0)
1164
+ bzpop(:bzpopmin, args, timeout)
1159
1165
  end
1160
1166
 
1161
1167
  def zcard(key)
@@ -1594,15 +1600,7 @@ class Redis
1594
1600
  end
1595
1601
  end
1596
1602
 
1597
- def bzpop(command, args)
1598
- timeout =
1599
- if args.last.is_a?(Hash)
1600
- args.pop[:timeout]
1601
- elsif args.last.respond_to?(:to_int)
1602
- args.pop.to_int
1603
- end
1604
-
1605
- timeout ||= 0
1603
+ def bzpop(command, args, timeout)
1606
1604
  single_pop_command = command.to_s[1..-1]
1607
1605
  keys = args.flatten
1608
1606
  keys.each do |key|
data/spec/sets_spec.rb CHANGED
@@ -7,8 +7,8 @@ module FakeRedis
7
7
  end
8
8
 
9
9
  it "should add a member to a set" do
10
- expect(@client.sadd("key", "value")).to eq(true)
11
- expect(@client.sadd("key", "value")).to eq(false)
10
+ expect(@client.sadd?("key", "value")).to eq(true)
11
+ expect(@client.sadd?("key", "value")).to eq(false)
12
12
 
13
13
  expect(@client.smembers("key")).to eq(["value"])
14
14
  end
@@ -120,14 +120,14 @@ module FakeRedis
120
120
  it "should pop members with the highest score from first sorted set that is non-empty" do
121
121
  @client.zadd("key1", [1, "val1", 2, "val2"])
122
122
  @client.zadd("key2", [3, "val3"])
123
- expect(@client.bzpopmax("nonexistent", "key1", "key2", 0)).to eq(["key1", "val2", 2.0])
123
+ expect(@client.bzpopmax("nonexistent", "key1", "key2", timeout: 0)).to eq(["key1", "val2", 2.0])
124
124
  expect(@client.bzpopmax("nonexistent")).to eq(nil)
125
125
  end
126
126
 
127
127
  it "should pop members with the lowest score from first sorted set that is non-empty" do
128
128
  @client.zadd("key1", [1, "val1", 2, "val2"])
129
129
  @client.zadd("key2", [3, "val3"])
130
- expect(@client.bzpopmin("nonexistent", "key1", "key2", 0)).to eq(["key1", "val1", 1.0])
130
+ expect(@client.bzpopmin("nonexistent", "key1", "key2", timeout: 0)).to eq(["key1", "val1", 1.0])
131
131
  expect(@client.bzpopmin("nonexistent")).to eq(nil)
132
132
  end
133
133
 
data/spec/spec_helper.rb CHANGED
@@ -11,6 +11,9 @@ RSpec.configure do |config|
11
11
  # Enable memory adapter
12
12
  config.before(:each) { FakeRedis.enable }
13
13
 
14
+ # Set the default behavior for sadd in v5.0
15
+ config.before(:all) { Redis.sadd_returns_boolean = false }
16
+
14
17
  config.backtrace_exclusion_patterns = []
15
18
  end
16
19
 
@@ -94,8 +94,8 @@ module FakeRedis
94
94
  @client.sadd('set', 'member1')
95
95
 
96
96
  responses = @client.multi do |multi|
97
- multi.sadd('set', 'member1')
98
- multi.sadd('set', 'member2')
97
+ multi.sadd?('set', 'member1')
98
+ multi.sadd?('set', 'member2')
99
99
  end
100
100
 
101
101
  expect(responses).to eq([false, true])
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fakeredis
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Guillermo Iguaran
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-04-15 00:00:00.000000000 Z
11
+ date: 2023-04-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis