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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/statisfy/counter.rb +9 -24
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 42017075ea6e11814c69273dad495fed1143fe56c84cca652f52c45e44f58be6
4
- data.tar.gz: 855f430c83b255b10228675c387947689cfd4dc3147073f65e56c15acb2bd485
3
+ metadata.gz: e3a10099a0ae5de62cc548fc5eed38c6d05c06b3bc04f4e32846627024260325
4
+ data.tar.gz: bc282b5f30c8ae07565ae24f8352f2724860a76b763c8be4d1e18484c76d4a3e
5
5
  SHA512:
6
- metadata.gz: 8b716fee4967f50c59a19a4becfffa8097593bb22cd5ffbe60bea6dcae0d6a0fe4bc1be017e91c38c4f1f465f87a765e51d097e14ac8bb02ba344887a5bd9565
7
- data.tar.gz: 21b5db159bc50e44c42b67b8ccbbb4d7b8f7f650f52f273983afcf4bc9ac5c5cc5be2553ed9ce3a2190fbc97e16c4b2dc521ae5c3f943cc1186a0e3093ba6494
6
+ metadata.gz: bfc687b9a1f56733ccb8c484e39f6b7d79c7844bedc5f46963eeb478568ee45c7c8278d3725aec189058d2076aff4deb304a905c23d770d22b9d76a95f3dbf3e
7
+ data.tar.gz: 4115d693fda17370ebe46a34088159ac39986b77280c7e8894bc39b1cf060562dd0c00adfac6743e0429918cdfc164a5f1ccee3dee0463a9246bc35f87409bed
@@ -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] : -> { args[:decrement_on_destroy] || false })
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
- size(scope:, month:)
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
- if value.present?
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:), identifier
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, id|
211
- self.class.redis_client.sadd?(key, id)
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.rpush(key, value)
211
+ self.class.redis_client.lrem(key, 1, value || identifier)
227
212
  end
228
213
  end
229
214
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: statisfy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michaël Villeneuve