active_queryable 0.3.1 → 0.4.0
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/active_queryable/version.rb +1 -1
- data/lib/active_queryable.rb +4 -3
- data/spec/active_queryable/pagination_spec.rb +2 -2
- data/spec/spec_helper.rb +1 -0
- data/spec/support/schema.rb +25 -4
- metadata +30 -10
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e14cea45c6029b11e6f9b399639d47bdd3c42ff596631e5f5c623be468a85465
|
|
4
|
+
data.tar.gz: 276489b7e09ca2f927a8235bd29256cd83567b1cb0b222f86a930246287e2a39
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e9d0e3e5228bde264cd83a9cbea61fb28308bca3edb8202d9af40f4c0d3b8e9315e063cc90c13b3ac88b32bed433b78b1dc8cdd909087fe458ea53be431657e9
|
|
7
|
+
data.tar.gz: c8b0ab07dd02730fc383b20591042f5df85d5f4322e86366c0af40006d9ca3f21ea67ddcdf941a2a3d594fefacfee6fea0ca056cfbd8e10e2aa0c3e9cacbe1d8
|
data/lib/active_queryable.rb
CHANGED
|
@@ -70,6 +70,7 @@ module ActiveQueryable
|
|
|
70
70
|
queryable_configure_options(options)
|
|
71
71
|
|
|
72
72
|
scope :query_by, ->(params) { queryable_scope(params) }
|
|
73
|
+
scope :of_ids, ->(ids) { where(id: ids) }
|
|
73
74
|
scope :of_not, ->(ids) { where.not(id: ids) }
|
|
74
75
|
end
|
|
75
76
|
|
|
@@ -89,7 +90,7 @@ module ActiveQueryable
|
|
|
89
90
|
# @return [void]
|
|
90
91
|
def expand_queryable(options)
|
|
91
92
|
self._queryable_expandable_filter_keys ||= []
|
|
92
|
-
self._queryable_expandable_filter_keys += (
|
|
93
|
+
self._queryable_expandable_filter_keys += (options[:filter] || []).map(&:to_sym)
|
|
93
94
|
end
|
|
94
95
|
|
|
95
96
|
# @param params [Hash,ActionController::Parameters]
|
|
@@ -123,7 +124,7 @@ module ActiveQueryable
|
|
|
123
124
|
self._queryable_default_order = options[:order] || { id: :asc }
|
|
124
125
|
self._queryable_default_page = options[:page] || 1
|
|
125
126
|
self._queryable_default_per = options[:per] || 25
|
|
126
|
-
self._queryable_filter_keys = ((
|
|
127
|
+
self._queryable_filter_keys = ((options[:filter] || []).map(&:to_sym))
|
|
127
128
|
end
|
|
128
129
|
|
|
129
130
|
# @param params [Hash,ActionController::Parameters]
|
|
@@ -165,7 +166,7 @@ module ActiveQueryable
|
|
|
165
166
|
page_params = {}
|
|
166
167
|
if params[:page].respond_to?(:dig)
|
|
167
168
|
page_params[:page] = params.dig(:page, :number) || _queryable_default_page
|
|
168
|
-
page_params[:per] = params.dig(:page, :size) ||
|
|
169
|
+
page_params[:per] = params.dig(:page, :size) || _queryable_default_per
|
|
169
170
|
else
|
|
170
171
|
page_params[:page] = params[:page] || _queryable_default_page
|
|
171
172
|
page_params[:per] = params[:per] || _queryable_default_per
|
|
@@ -16,8 +16,8 @@ describe 'Pagination' do
|
|
|
16
16
|
expect(query.to_sql).to include('LIMIT 2 OFFSET 2')
|
|
17
17
|
end
|
|
18
18
|
|
|
19
|
-
it 'ignores
|
|
19
|
+
it 'ignores per when page is an object' do
|
|
20
20
|
query = Person.query_by(page: {}, per: 20)
|
|
21
|
-
expect(query.to_sql).to include('LIMIT
|
|
21
|
+
expect(query.to_sql).to include('LIMIT 25 OFFSET 0')
|
|
22
22
|
end
|
|
23
23
|
end
|
data/spec/spec_helper.rb
CHANGED
data/spec/support/schema.rb
CHANGED
|
@@ -1,9 +1,30 @@
|
|
|
1
1
|
require 'active_record'
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
if ENV['ACTIVE_RECORD_ADAPTER'] == 'mysql'
|
|
4
|
+
puts 'Running on MySQL...'
|
|
5
|
+
ActiveRecord::Base.establish_connection(
|
|
6
|
+
adapter: 'mysql2',
|
|
7
|
+
host: ENV['DB_HOST'] || '127.0.0.1',
|
|
8
|
+
username: ENV['DB_USERNAME'] || 'root',
|
|
9
|
+
password: ENV['DB_PASSWORD'],
|
|
10
|
+
database: 'acts_as_nosql'
|
|
11
|
+
)
|
|
12
|
+
elsif ENV['ACTIVE_RECORD_ADAPTER'] == 'postgresql'
|
|
13
|
+
puts 'Running on PostgreSQL...'
|
|
14
|
+
ActiveRecord::Base.establish_connection(
|
|
15
|
+
adapter: 'postgresql',
|
|
16
|
+
database: 'acts_as_nosql',
|
|
17
|
+
host: ENV['DB_HOST'] || '127.0.0.1',
|
|
18
|
+
username: ENV['DB_USERNAME'] || ENV['POSTGRES_USER'] || 'postgres',
|
|
19
|
+
password: ENV['DB_PASSWORD'] || ENV['POSTGRES_PASSWORD']
|
|
20
|
+
)
|
|
21
|
+
else
|
|
22
|
+
puts 'Running on SQLite...'
|
|
23
|
+
ActiveRecord::Base.establish_connection(
|
|
24
|
+
adapter: 'sqlite3',
|
|
25
|
+
database: ':memory:'
|
|
26
|
+
)
|
|
27
|
+
end
|
|
7
28
|
|
|
8
29
|
class Common < ActiveRecord::Base
|
|
9
30
|
self.abstract_class = true
|
metadata
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: active_queryable
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Mònade
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
11
|
date: 2019-12-16 00:00:00.000000000 Z
|
|
@@ -16,20 +16,40 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '
|
|
19
|
+
version: '6'
|
|
20
20
|
- - "<"
|
|
21
21
|
- !ruby/object:Gem::Version
|
|
22
|
-
version: '
|
|
22
|
+
version: '9'
|
|
23
23
|
type: :runtime
|
|
24
24
|
prerelease: false
|
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
|
26
26
|
requirements:
|
|
27
27
|
- - ">="
|
|
28
28
|
- !ruby/object:Gem::Version
|
|
29
|
-
version: '
|
|
29
|
+
version: '6'
|
|
30
30
|
- - "<"
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: '
|
|
32
|
+
version: '9'
|
|
33
|
+
- !ruby/object:Gem::Dependency
|
|
34
|
+
name: activerecord
|
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - ">="
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '6'
|
|
40
|
+
- - "<"
|
|
41
|
+
- !ruby/object:Gem::Version
|
|
42
|
+
version: '9'
|
|
43
|
+
type: :runtime
|
|
44
|
+
prerelease: false
|
|
45
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
46
|
+
requirements:
|
|
47
|
+
- - ">="
|
|
48
|
+
- !ruby/object:Gem::Version
|
|
49
|
+
version: '6'
|
|
50
|
+
- - "<"
|
|
51
|
+
- !ruby/object:Gem::Version
|
|
52
|
+
version: '9'
|
|
33
53
|
- !ruby/object:Gem::Dependency
|
|
34
54
|
name: kaminari-activerecord
|
|
35
55
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -91,7 +111,7 @@ homepage: https://rubygems.org/gems/active_queryable
|
|
|
91
111
|
licenses:
|
|
92
112
|
- MIT
|
|
93
113
|
metadata: {}
|
|
94
|
-
post_install_message:
|
|
114
|
+
post_install_message:
|
|
95
115
|
rdoc_options: []
|
|
96
116
|
require_paths:
|
|
97
117
|
- lib
|
|
@@ -99,15 +119,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
99
119
|
requirements:
|
|
100
120
|
- - ">="
|
|
101
121
|
- !ruby/object:Gem::Version
|
|
102
|
-
version:
|
|
122
|
+
version: 3.0.0
|
|
103
123
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
104
124
|
requirements:
|
|
105
125
|
- - ">="
|
|
106
126
|
- !ruby/object:Gem::Version
|
|
107
127
|
version: '0'
|
|
108
128
|
requirements: []
|
|
109
|
-
rubygems_version: 3.
|
|
110
|
-
signing_key:
|
|
129
|
+
rubygems_version: 3.4.6
|
|
130
|
+
signing_key:
|
|
111
131
|
specification_version: 4
|
|
112
132
|
summary: Gem to make easier model's filtering, sorting and pagination
|
|
113
133
|
test_files:
|