statisfy 0.0.2 → 0.0.3
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 +4 -4
- data/lib/statisfy/counter.rb +9 -24
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e3a10099a0ae5de62cc548fc5eed38c6d05c06b3bc04f4e32846627024260325
|
4
|
+
data.tar.gz: bc282b5f30c8ae07565ae24f8352f2724860a76b763c8be4d1e18484c76d4a3e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bfc687b9a1f56733ccb8c484e39f6b7d79c7844bedc5f46963eeb478568ee45c7c8278d3725aec189058d2076aff4deb304a905c23d770d22b9d76a95f3dbf3e
|
7
|
+
data.tar.gz: 4115d693fda17370ebe46a34088159ac39986b77280c7e8894bc39b1cf060562dd0c00adfac6743e0429918cdfc164a5f1ccee3dee0463a9246bc35f87409bed
|
data/lib/statisfy/counter.rb
CHANGED
@@ -46,7 +46,9 @@ module Statisfy
|
|
46
46
|
define_method(:value, args[:value] || -> {})
|
47
47
|
define_method(:should_run?, args[:if] || -> { true })
|
48
48
|
define_method(:on_destroy, args[:on_destroy]) if args[:on_destroy].present?
|
49
|
-
define_method(:decrement_on_destroy?, args[:decrement_on_destroy].is_a?(Proc) ? args[:decrement_on_destroy] :
|
49
|
+
define_method(:decrement_on_destroy?, args[:decrement_on_destroy].is_a?(Proc) ? args[:decrement_on_destroy] : lambda {
|
50
|
+
args[:decrement_on_destroy] || true
|
51
|
+
})
|
50
52
|
end
|
51
53
|
|
52
54
|
#
|
@@ -64,14 +66,10 @@ module Statisfy
|
|
64
66
|
if const_get(:COUNTER_TYPE) == :aggregate
|
65
67
|
average(scope:, month:)
|
66
68
|
else
|
67
|
-
|
69
|
+
elements_in(scope:, month:).uniq.size
|
68
70
|
end
|
69
71
|
end
|
70
72
|
|
71
|
-
def size(scope: nil, month: nil)
|
72
|
-
redis_client.scard(key_for(scope:, month:))
|
73
|
-
end
|
74
|
-
|
75
73
|
#
|
76
74
|
# Returns the list of elements in the set (in case you use .append and not .increment)
|
77
75
|
#
|
@@ -173,11 +171,7 @@ module Statisfy
|
|
173
171
|
return if destroy_event_handled?
|
174
172
|
return unless if_async
|
175
173
|
|
176
|
-
|
177
|
-
append(value:)
|
178
|
-
else
|
179
|
-
decrement? ? decrement : increment
|
180
|
-
end
|
174
|
+
decrement? ? decrement : increment
|
181
175
|
end
|
182
176
|
|
183
177
|
def destroy_event_handled?
|
@@ -201,29 +195,20 @@ module Statisfy
|
|
201
195
|
def all_counters
|
202
196
|
[month_to_set, nil].each do |month|
|
203
197
|
scopes_with_global.each do |scope|
|
204
|
-
yield self.class.key_for(scope:, month:)
|
198
|
+
yield self.class.key_for(scope:, month:)
|
205
199
|
end
|
206
200
|
end
|
207
201
|
end
|
208
202
|
|
209
203
|
def increment
|
210
|
-
all_counters do |key
|
211
|
-
self.class.redis_client.
|
204
|
+
all_counters do |key|
|
205
|
+
self.class.redis_client.rpush(key, value || identifier)
|
212
206
|
end
|
213
207
|
end
|
214
208
|
|
215
209
|
def decrement
|
216
|
-
all_counters do |key, id|
|
217
|
-
self.class.redis_client.srem?(key, id)
|
218
|
-
end
|
219
|
-
end
|
220
|
-
|
221
|
-
#
|
222
|
-
# To be used to store a list of values instead of a basic counter
|
223
|
-
#
|
224
|
-
def append(value:)
|
225
210
|
all_counters do |key|
|
226
|
-
self.class.redis_client.
|
211
|
+
self.class.redis_client.lrem(key, 1, value || identifier)
|
227
212
|
end
|
228
213
|
end
|
229
214
|
end
|