sort_n_params 1.2.3 → 1.2.4
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/sort_n_params/concerns/scopes.rb +1 -1
- data/sort_n_params.gemspec +3 -2
- data/spec/concerns/scopes_spec.rb +33 -1
- data/spec/spec_helper.rb +7 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0d4ac056564f23114d90e35df4b967adb86fa41078a7ea283b0194bc4185770e
|
4
|
+
data.tar.gz: 3d5ef6cb54e2332663f866fb64b4f4129ce71dcb759e7a07d81591f4305d9947
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d3958ff1ccc8458fa980a3372f362663be02b5a812641fc55f2e3c8fcc290038c152045538236290f2fb530bb4fd510c9af45e8c6a35c50c4fb14c4bc3fd1172
|
7
|
+
data.tar.gz: 0f17254708d77572faa51439bafebac85d8b7276a7b060b78bc1e917b9d7a06095edc534983be0508dada603b432dd4e9eb2cde400235ada34cad226d47c19f9
|
@@ -9,7 +9,7 @@ module SortNParams
|
|
9
9
|
def sorting_order(ordering_array, table_name = nil)
|
10
10
|
return all if ordering_array.blank?
|
11
11
|
|
12
|
-
all.order(parse_array(ordering_array, table_name))
|
12
|
+
all.order(sanitize_sql_for_order(parse_array(ordering_array, table_name)))
|
13
13
|
end
|
14
14
|
|
15
15
|
def parse_array(ordering_array, table_name = nil)
|
data/sort_n_params.gemspec
CHANGED
@@ -2,8 +2,8 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = 'sort_n_params'
|
5
|
-
s.version = '1.2.
|
6
|
-
s.date = '2022-06-
|
5
|
+
s.version = '1.2.4'
|
6
|
+
s.date = '2022-06-23'
|
7
7
|
s.summary = 'Sort N Params'
|
8
8
|
s.description = 'Make your html <tables> sortables with N <th> parameters this gem.'
|
9
9
|
s.authors = ['Juan Francisco Ferrari']
|
@@ -35,6 +35,7 @@ Gem::Specification.new do |s|
|
|
35
35
|
s.add_development_dependency 'rspec', '~> 3.0'
|
36
36
|
s.add_development_dependency 'rubocop', '~> 1.30'
|
37
37
|
s.add_development_dependency 'rubocop-rails'
|
38
|
+
s.add_development_dependency 'sqlite3'
|
38
39
|
|
39
40
|
s.add_dependency('nokogiri', ['>= 0'])
|
40
41
|
s.add_dependency('rails', ['>= 7.0'])
|
@@ -1,16 +1,48 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'sort_n_params/concerns/scopes'
|
4
|
+
require 'active_record'
|
4
5
|
|
5
|
-
CustomTable
|
6
|
+
class CustomTable < ActiveRecord::Base
|
6
7
|
include SortNParams::Scopes
|
7
8
|
end
|
8
9
|
|
9
10
|
RSpec.describe SortNParams::Scopes do
|
11
|
+
before(:all) { create_tables }
|
12
|
+
after(:all) { drop_tables }
|
13
|
+
|
14
|
+
def create_tables
|
15
|
+
ActiveRecord::Base.connection.create_table :custom_tables do |t|
|
16
|
+
t.text :test_field
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def drop_tables
|
21
|
+
ActiveRecord::Base.connection.drop_table :custom_tables
|
22
|
+
end
|
23
|
+
|
10
24
|
let(:test_class) do
|
11
25
|
CustomTable
|
12
26
|
end
|
13
27
|
|
28
|
+
describe '#sorting_order' do
|
29
|
+
context 'when you pass only the sorting field with direction asc' do
|
30
|
+
subject { test_class.sorting_order(%w[test_field asc]) }
|
31
|
+
|
32
|
+
it 'builds an order with that field and direction' do
|
33
|
+
expect(subject.explain).to include('ORDER BY custom_tables.test_field asc')
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
context 'when you pass only the sorting field direction desc' do
|
38
|
+
subject { test_class.sorting_order(%w[test_field desc]) }
|
39
|
+
|
40
|
+
it 'builds an order with that field and direction' do
|
41
|
+
expect(subject.explain).to include('ORDER BY custom_tables.test_field desc')
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
14
46
|
describe '#parse_array' do
|
15
47
|
context 'when you pass only an ordering array' do
|
16
48
|
subject { test_class.parse_array(%w[test_field asc]) }
|
data/spec/spec_helper.rb
CHANGED
@@ -2,8 +2,15 @@
|
|
2
2
|
|
3
3
|
require 'factory_bot'
|
4
4
|
require 'sort_n_params/sortable'
|
5
|
+
require 'active_record'
|
6
|
+
require 'sqlite3'
|
5
7
|
|
6
8
|
RSpec.configure do |config|
|
7
9
|
config.include FactoryBot::Syntax::Methods
|
8
10
|
FactoryBot.find_definitions
|
11
|
+
|
12
|
+
ActiveRecord::Base.establish_connection(
|
13
|
+
adapter: 'sqlite3',
|
14
|
+
database: ':memory:'
|
15
|
+
)
|
9
16
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sort_n_params
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Juan Francisco Ferrari
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-06-
|
11
|
+
date: 2022-06-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -122,6 +122,20 @@ dependencies:
|
|
122
122
|
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: sqlite3
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
125
139
|
- !ruby/object:Gem::Dependency
|
126
140
|
name: nokogiri
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|