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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NDZkNTM0YTI5M2ZhMDk4NGNiMzc3Mzk2YmRiMTFhNmNkNDI4NmI1Zg==
4
+ NjdlNjljY2EyNGEyM2I1NjNmNWVkNmExODQzMjQ5NGQwMDI5ZTFhNw==
5
5
  data.tar.gz: !binary |-
6
- NTU1ZDM0NzQxOTg4OTlkNDRkY2YzMWQ1NGQ2ZDhlOGI4NDBmMGI0MQ==
6
+ YzZlNjdkMTkzZDg1MTFjZDc0MDI2MWFmODZlMjhjODNiMTg4MjE2Zg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZGIyZTI0ODJjMmZiNjBiZDQyODcwMzU1MWI1Y2ZjNmViYjFlOWUzZTQ5Mjc3
10
- ZmJlNWVhNTJmMDJjMDY3MmMxY2MxM2ZiNGQyNzI3Y2ViZDJiZDE5NmY1N2Q3
11
- OTQ1NzM3OTQ1NzRjMTVkOTJjNDcwNjAzNjhiYWZlM2UzZGFjMWU=
9
+ ZDRjY2U2NThiOTViODZjYjYyMmFkZDAyN2UxNmFjNzU3YTIyMDlmYjlmMjZj
10
+ OWM4ZmJjNjZhNTk4OGVkYTM0ZjI2NjczOGE3YjdjOThlYTRhYmVkYjIzNDZh
11
+ Njg4NWIwZWM2MDE2NDM4Y2YzNDZjMTA3NmU3YmNhZGFlYzgxMjU=
12
12
  data.tar.gz: !binary |-
13
- Nzk5OGNkN2ExMTA5MzAwMWMyZDM3NGQyZDJmOTY0MzMzOTM0YTdmNTQ1Y2Q0
14
- ZTVjOWFhM2U1NTljYjgzMTJiNTY5YTA5Y2JkMTU1MmJlMjdmNmFhZGZjZDg2
15
- NjIxYjBlY2QwMTk1Zjc5ZjdhZDAyYTRlODdkNWQyN2Q5MDEyOGI=
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