pseudo_cleaner 0.0.43 → 0.0.44
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 +8 -8
- data/lib/pseudo_cleaner/redis_based_redis_cleaner.rb +144 -0
- data/lib/pseudo_cleaner/redis_cleaner.rb +412 -114
- data/lib/pseudo_cleaner/version.rb +1 -1
- data/spec/rails_helper.rb +4 -1
- data/spec/redis_based_redis_cleaner_spec.rb +35 -0
- data/spec/redis_cleaner_spec.rb +15 -0
- data/spec/shared_examples/redis_cleaner_storage.rb +280 -0
- data/spec/shared_examples/redis_cleaner_test_tracking.rb +8312 -0
- metadata +11 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NjdlNjljY2EyNGEyM2I1NjNmNWVkNmExODQzMjQ5NGQwMDI5ZTFhNw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YzZlNjdkMTkzZDg1MTFjZDc0MDI2MWFmODZlMjhjODNiMTg4MjE2Zg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZDRjY2U2NThiOTViODZjYjYyMmFkZDAyN2UxNmFjNzU3YTIyMDlmYjlmMjZj
|
10
|
+
OWM4ZmJjNjZhNTk4OGVkYTM0ZjI2NjczOGE3YjdjOThlYTRhYmVkYjIzNDZh
|
11
|
+
Njg4NWIwZWM2MDE2NDM4Y2YzNDZjMTA3NmU3YmNhZGFlYzgxMjU=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZGZiYjg1MDA3YmRlZmU2ZDBmMDM3NTFhZDA3OTk1Y2MzMzUzZjc2Y2E1OWMy
|
14
|
+
MzI3ZDFiNmZjNzZlM2RkYWZhYjNlZGY1OTJlYjY1YmUxOWFjY2Y3OGJlMjZk
|
15
|
+
Mjc5YTA2NDQ4ZWVjZjQzMWI4NzFjOWUxMmE0YWM5MDRiMjBlNTA=
|
@@ -0,0 +1,144 @@
|
|
1
|
+
require "pseudo_cleaner/redis_cleaner"
|
2
|
+
require "json"
|
3
|
+
|
4
|
+
module PseudoCleaner
|
5
|
+
class RedisBasedRedisCleaner < PseudoCleaner::RedisCleaner
|
6
|
+
def base_key
|
7
|
+
"PseudoCleaner::RedisBasedRedisCleaner"
|
8
|
+
end
|
9
|
+
|
10
|
+
def settings_redis
|
11
|
+
@settings_redis ||= Redis.new(redis.client.options)
|
12
|
+
end
|
13
|
+
|
14
|
+
def ignore_key(key)
|
15
|
+
key =~ /#{base_key}/ ||
|
16
|
+
ignore_regexes.detect { |ignore_regex| key =~ ignore_regex }
|
17
|
+
end
|
18
|
+
|
19
|
+
def bool_name(value_name)
|
20
|
+
"#{base_key}::#{value_name}"
|
21
|
+
end
|
22
|
+
|
23
|
+
def set_value_bool(value_name, bool_value)
|
24
|
+
settings_redis.set bool_name(value_name), (!!bool_value).to_s
|
25
|
+
end
|
26
|
+
|
27
|
+
def get_value_bool(value_name)
|
28
|
+
settings_redis.get(bool_name(value_name)) != "false"
|
29
|
+
end
|
30
|
+
|
31
|
+
def list_name(value_name)
|
32
|
+
"#{base_key}::#{value_name}"
|
33
|
+
end
|
34
|
+
|
35
|
+
def sub_list_name(value_name, index)
|
36
|
+
"#{list_name(value_name)}::#{index}"
|
37
|
+
end
|
38
|
+
|
39
|
+
def append_list_value_array(value_name, array_value)
|
40
|
+
list_len = settings_redis.llen list_name(value_name)
|
41
|
+
|
42
|
+
sub_name = sub_list_name(value_name, list_len)
|
43
|
+
|
44
|
+
settings_redis.multi do
|
45
|
+
array_value.each do |value|
|
46
|
+
if value.is_a?(Hash)
|
47
|
+
settings_redis.rpush sub_name, "h#{value.to_json}"
|
48
|
+
else
|
49
|
+
settings_redis.rpush sub_name, "s#{value}"
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
settings_redis.rpush list_name(value_name), sub_name
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
def get_list_length(value_name)
|
58
|
+
settings_redis.llen list_name(value_name)
|
59
|
+
end
|
60
|
+
|
61
|
+
def get_list_array(value_name)
|
62
|
+
list_len = settings_redis.llen list_name(value_name)
|
63
|
+
|
64
|
+
list_array = []
|
65
|
+
list_len.times do |index|
|
66
|
+
sub_name = sub_list_name value_name, index
|
67
|
+
|
68
|
+
value_array = []
|
69
|
+
values = settings_redis.lrange(sub_name, 0, -1)
|
70
|
+
|
71
|
+
values.each do |value|
|
72
|
+
if value [0] == "h"
|
73
|
+
value = JSON.parse(value[1..-1])
|
74
|
+
else
|
75
|
+
value = value[1..-1]
|
76
|
+
end
|
77
|
+
|
78
|
+
value_array << value
|
79
|
+
end
|
80
|
+
|
81
|
+
list_array << value_array
|
82
|
+
end
|
83
|
+
|
84
|
+
list_array
|
85
|
+
end
|
86
|
+
|
87
|
+
def clear_list_array(value_name)
|
88
|
+
settings_redis.lrange(list_name(value_name), 0, -1).each do |sub_list_name|
|
89
|
+
settings_redis.del sub_list_name
|
90
|
+
end
|
91
|
+
|
92
|
+
settings_redis.del list_name(value_name)
|
93
|
+
end
|
94
|
+
|
95
|
+
def set_name(value_name)
|
96
|
+
"#{base_key}::#{value_name}"
|
97
|
+
end
|
98
|
+
|
99
|
+
def clear_set(value_name, keys = nil)
|
100
|
+
clear_name = set_name(value_name)
|
101
|
+
settings_redis.del clear_name
|
102
|
+
|
103
|
+
if keys
|
104
|
+
keys.each do |key|
|
105
|
+
settings_redis.sadd clear_name, key
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
def add_set_values(value_name, *values)
|
111
|
+
add_name = set_name(value_name)
|
112
|
+
|
113
|
+
settings_redis.multi do
|
114
|
+
values.each do |value|
|
115
|
+
settings_redis.sadd add_name, value
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
def add_set_value(value_name, value)
|
121
|
+
settings_redis.sadd set_name(value_name), value
|
122
|
+
end
|
123
|
+
|
124
|
+
def remove_set_value(value_name, value)
|
125
|
+
settings_redis.srem set_name(value_name), value
|
126
|
+
end
|
127
|
+
|
128
|
+
def set_includes?(value_name, value)
|
129
|
+
settings_redis.sismember set_name(value_name), value
|
130
|
+
end
|
131
|
+
|
132
|
+
def get_set(value_name)
|
133
|
+
SortedSet.new(settings_redis.smembers(set_name(value_name)))
|
134
|
+
end
|
135
|
+
|
136
|
+
def suite_end test_strategy
|
137
|
+
super test_strategy
|
138
|
+
|
139
|
+
settings_redis.keys("#{base_key}*").each do |key|
|
140
|
+
settings_redis.del key
|
141
|
+
end
|
142
|
+
end
|
143
|
+
end
|
144
|
+
end
|