miscellany 0.1.17 → 0.1.18

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: d8272b6520386bb2e45ef6a4ae8cc6c2c349e465ca8eea10867df3c42c80c7c3
4
- data.tar.gz: aeb81bc5bb198c2f64589c1d416369bd101de5d1db074682e40f66247c2035d5
3
+ metadata.gz: 1dea6efd8728954e80a8a249f749dd8133ecfcf71fb6b4a3b3acf248b662fca8
4
+ data.tar.gz: bd567ce813d303ca03d8d87f8faa4a312d2417b934bb1ee8c3d2781b99126f88
5
5
  SHA512:
6
- metadata.gz: 3f6ac9e74cacbdb4dd5d990a47c72608181eb005b4a9c3de81b46666bf314a246fa799c29d97753519822318740adf32fa2db63450d2d70e2abc4fb4a38c09de
7
- data.tar.gz: 99f033c54af54257ef660e889f34f683e080fe4e16baeb9d1f201fcf0091561c6d2fd5d26b582a57b9ab91b2d7c0fd3c8e72f8fc8e02f7425b0a395b4bcc7e9f
6
+ metadata.gz: 66f32e979d580c4297c1155f6bc87203ec808420856636724a257d07ca062ffe5d5ecd073aaa0fa0b09efb781f033affce87faa579b0007bd7f4ffe46c82fda3
7
+ data.tar.gz: 54210f971ad74cd8d14b4934cb36d155943626b5e66190c682c294fdcd30f3b315cf2b5dbae268ce70a1213726e294978c80b080fdf8422bd1256a4f47dd3f37
@@ -7,8 +7,8 @@ module Miscellany
7
7
  include HttpErrorHandling
8
8
 
9
9
  # Deprecated
10
- def slice_results(queryset, **kwargs)
11
- @sliced_data = sliced_json(queryset, **kwargs) { |x| x }
10
+ def slice_results(*args, **kwargs, &blk)
11
+ @sliced_data = sliced_json(*args, **kwargs, &blk)
12
12
  end
13
13
 
14
14
  def sliced_json(
@@ -26,7 +26,7 @@ module Miscellany
26
26
  sorts.map do |sort|
27
27
  order = sort[:order] || 'ASC'
28
28
  if sort[:column].is_a?(Proc)
29
- sort[:column].call(qset, order)
29
+ sort[:column].call(order)
30
30
  else
31
31
  desired_nulls = (sort[:nulls] || :low).to_s.downcase.to_sym
32
32
  nulls = case desired_nulls
@@ -93,6 +93,7 @@ module Miscellany
93
93
  sorts.each do |s|
94
94
  if s.is_a?(Hash)
95
95
  s.each do |k,v|
96
+ k = k.to_s
96
97
  sort_hash = normalize_sort(v, key: k)
97
98
  norm_sorts[k] = sort_hash
98
99
  end
@@ -1,3 +1,3 @@
1
1
  module Miscellany
2
- VERSION = "0.1.17".freeze
2
+ VERSION = "0.1.18".freeze
3
3
  end
@@ -129,6 +129,19 @@ describe Miscellany::SlicedResponse do
129
129
 
130
130
  expect(subject.sliced_json(ARModel.all, { page: "all" }, allow_all: true, **slice_config)).to be_a Hash
131
131
  end
132
+
133
+ context "with Hash-based valid_sorts" do
134
+ let(:source) { ARModel.all }
135
+
136
+ before(:each) do
137
+ slice_config[:valid_sorts] = [
138
+ title: ->(dir) { "title #{dir}" }
139
+ ]
140
+ end
141
+
142
+ include_examples "basic functionality"
143
+ include_examples "sortable"
144
+ end
132
145
  end
133
146
 
134
147
  describe "#bearcat_as_sliced_json" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: miscellany
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.17
4
+ version: 0.1.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ethan Knapp
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-09-29 00:00:00.000000000 Z
11
+ date: 2023-10-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails