acts_as_ranked_list 0.2.3 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 55fb6b1014091f8df47866752d9aedc4cdac1204955852b09c84d480e2769486
4
- data.tar.gz: 34bc12ea565e8fd881a6401d9b5cc3ea4e83b86106abb6ee1ec1b7d4a19c1fac
3
+ metadata.gz: 3c665111b3d1da9b578d19b1c49203ae597e49a06e09f274e92cb7cecca03687
4
+ data.tar.gz: d4d682b766b048afcc9af37fabcb99e37e683a2d0924e32a2d4a3941a6c29f36
5
5
  SHA512:
6
- metadata.gz: b283316886e10b9d469843c3814fda1143ea619feacd8f2415e8d323c1a21c41281b91b9407b53bdd43425192ccc5dd5aa29ec905030788404490dba844a8765
7
- data.tar.gz: dd72d4345b6d37ee33f8f4513200c793865f52c8468949f9935962c77ab898ded2b7fffc43ad9b1616e6e3a55517dd72964bed168069de9c79c04699f61c8b9e
6
+ metadata.gz: cf228e285474e6ffdee7aeeb36c5a024ee897a640a8f9dbc486faf4e7b8fd431e2c11907137e1f15fec253e0ee4ec38e7b73cedf2883690b1482261032a9cd87
7
+ data.tar.gz: 922b5ad1fa695325e779a3a44db204b3457a84d0b5bcec539cb16c492c48abe3c82a92acf978984aa3d758846fc532fe1f9c829c41eed9fe4f764f6852414afa
data/CHANGELOG.md CHANGED
@@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.4.0] - 2024-02-12
11
+
12
+ - Fixes sporadic bug on postgres with `pluck` higher items.
13
+
14
+ ## [0.3.0] - 2024-02-11 [YANKED]
15
+
16
+ - Fixes individual items updating timestamps even when `touch_on_update` is false.
17
+
10
18
  ## [0.2.3] - 2023-12-31
11
19
 
12
20
  - Updates gem dependencies.
@@ -198,7 +198,9 @@ module ActsAsRankedList #:nodoc:
198
198
 
199
199
  define_method :set_rank_above do |item|
200
200
  higher_items = get_higher_items(2, "DESC", item.current_rank, true, true)
201
- padded_array = pad_array(higher_items.pluck(rank_column), 0)
201
+ # TODO: Why is higher_items and lower_items sometimes need to be converted to array.
202
+ # Is it related to if items are not found? Otherwise it returns an error
203
+ padded_array = pad_array(higher_items.to_a.pluck(rank_column), 0)
202
204
  new_rank = padded_array.sum / 2
203
205
 
204
206
  with_persistence do
@@ -223,7 +225,7 @@ module ActsAsRankedList #:nodoc:
223
225
  # new_rank = ::ActiveRecord::Base.connection.execute(sql).to_a.first.values.first
224
226
 
225
227
  lower_items = get_lower_items(2, "ASC", item.current_rank, true, true)
226
- padded_array = pad_array(lower_items.pluck(rank_column))
228
+ padded_array = pad_array(lower_items.to_a.pluck(rank_column))
227
229
  new_rank = padded_array.sum / 2
228
230
 
229
231
  with_persistence do
@@ -312,7 +314,17 @@ module ActsAsRankedList #:nodoc:
312
314
  define_method :with_persistence do |items = [self], &blk|
313
315
  blk.call
314
316
 
317
+ item_record_timestamps = items.map do |i|
318
+ i.record_timestamps?
319
+ end
320
+
321
+ items.each { |i| i.record_timestamps = touch_on_update }
322
+
315
323
  items.each(&:save!) unless skip_persistence?
324
+
325
+ items.each_with_index do |i, idx|
326
+ i.record_timestamps = item_record_timestamps[idx]
327
+ end
316
328
  end
317
329
 
318
330
  define_method :pad_array do |array, value = nil, size = 2|
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActsAsRankedList
4
- VERSION = "0.2.3"
4
+ VERSION = "0.4.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acts_as_ranked_list
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Farbafe
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-12-31 00:00:00.000000000 Z
11
+ date: 2024-02-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails