grape-listing 1.4.1 → 1.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9a08651771c1b6b69a971b66317aa3691cb75d7da100f9407b16f78167481acf
4
- data.tar.gz: b0df89ebcb77edc6f1117808fbc4a0945d0bead95b718e1327bfd2f308c77f1e
3
+ metadata.gz: b39f35492ea200776aaf47d09842ac0f3ddc9b2feeb0b582f116527e3ede531c
4
+ data.tar.gz: 38c22258be092078cfd94a55428f98abe6eba3fead710118e90738614ead271a
5
5
  SHA512:
6
- metadata.gz: 1e81de98a49503dae90ca57c69e3ee1e086376b920dc3d10bffc759f11d2aee07169901212295a6c0795da105784c9944876c5086c3420a8be21480c3b6e6fbb
7
- data.tar.gz: 6dfd30da2944c35bafa79670fde3c4e47f8d2f70c6a5ad05b25b6fde159c2e1e129380d4c1eac7da7959a1e72d92fb5bd63d2259c5bead9525fd2d640f469d92
6
+ metadata.gz: 6aad32559cb9532b50e5e68870eae48929c4b35c2aaef621a36f72afa17d66f7f253e7e4b92013a56cfbbea63f7e12ac35be5697bda83d21a9c37b9262421192
7
+ data.tar.gz: 1fb20e21e76fa8affd0150774d5c69f5a70112203c62a3a6ebc1fdcab66583e8c91c079b65bc417cda4311d9d24001078b27319410f52c639b1904b447b3a12e
@@ -1,3 +1,3 @@
1
1
  module GrapeListing
2
- VERSION = '1.4.1'.freeze
2
+ VERSION = '1.4.3'.freeze
3
3
  end
@@ -10,8 +10,8 @@ module GrapeListing
10
10
 
11
11
  # результат с пагинацией
12
12
  {
13
- sort_order: @sort_order,
14
- sort_by: @params['sort_by'],
13
+ sort_by: @params['sort_by'] || 'id',
14
+ sort_order: @sort_order || 'desc',
15
15
  count: @objects_count,
16
16
  objects: @objects
17
17
  }
@@ -40,7 +40,7 @@ module GrapeListing
40
40
  return cached if cached
41
41
 
42
42
  # получение кол-ва записей из запроса к БД
43
- count = list.distinct.count(:id)
43
+ count = list.merge(sort_proc).distinct.count(:id)
44
44
 
45
45
  # кеширование кол-ва записей при превышении порогового значения
46
46
  if count >= 1_000
@@ -54,7 +54,7 @@ module GrapeListing
54
54
  # необходимо убрать параметры offset и page из uri
55
55
  uri_path, params = @request_uri.split('?')
56
56
  if params
57
- params = Rack::Utils.parse_query(params).except('offset', 'page')
57
+ params = Rack::Utils.parse_query(params).except('offset', 'page', 'sort_order')
58
58
  @request_uri = params.present? ? "#{uri_path}?#{Rack::Utils.build_query(params)}" : uri_path
59
59
  end
60
60
 
@@ -62,7 +62,7 @@ module GrapeListing
62
62
  body = "#{@request_method} #{@request_uri}"
63
63
 
64
64
  enc = Digest::MD5.hexdigest(body)
65
- "listing_cached_count_#{enc}"
65
+ "grape-listing:listing_cached_count_#{enc}"
66
66
  end
67
67
 
68
68
 
@@ -6,7 +6,6 @@ module GrapeListing
6
6
  def sort_proc
7
7
  # проверка необходимости нестандартной сортировки
8
8
  if !@sortable.is_a?(Array) || @sortable.empty? || custom_sorting_field.blank?
9
- @sort_by = 'id'
10
9
  return proc { order('id DESC NULLS LAST') }
11
10
  end
12
11
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grape-listing
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.1
4
+ version: 1.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Павел Бабин