fakeredis 0.9.0 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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