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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ca76d46d098d260a1f59a1fd6e50d59cbab69eb95ba87f25470ccb08aa3050f2
4
- data.tar.gz: 9562f2b4d7a4cce6ba1ba6bb070c6e6d9cf031d6205bf1006e5b5c1f21566ed4
3
+ metadata.gz: e14cea45c6029b11e6f9b399639d47bdd3c42ff596631e5f5c623be468a85465
4
+ data.tar.gz: 276489b7e09ca2f927a8235bd29256cd83567b1cb0b222f86a930246287e2a39
5
5
  SHA512:
6
- metadata.gz: 5ec24780124afa2fd02e2d6bdf9a4f54f6dd980c8852adc43c4ae37144f887d54eccbdebf5e8d50765b3cc3e051762f4c1e62f7006a3a5385d5ed6962e3ce22f
7
- data.tar.gz: aaf987e005a9f87b39ae00f63adaf7791a11b0facc962ae2f9b70e541e74f7b0281e1d71e6428ba71b97c7ba924dd20cf08b126e960430f9ecf8ef88d0ec9d0d
6
+ metadata.gz: e9d0e3e5228bde264cd83a9cbea61fb28308bca3edb8202d9af40f4c0d3b8e9315e063cc90c13b3ac88b32bed433b78b1dc8cdd909087fe458ea53be431657e9
7
+ data.tar.gz: c8b0ab07dd02730fc383b20591042f5df85d5f4322e86366c0af40006d9ca3f21ea67ddcdf941a2a3d594fefacfee6fea0ca056cfbd8e10e2aa0c3e9cacbe1d8
@@ -2,5 +2,5 @@
2
2
 
3
3
  module ActiveQueryable
4
4
  # @return [String] the version of the gem
5
- VERSION = '0.3.1'
5
+ VERSION = '0.4.0'
6
6
  end
@@ -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 += ((options[:filter] || [])).map(&:to_sym)
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 = (((options[:filter] || [])).map(&:to_sym))
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) || params[:per] || _queryable_default_per
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 invalid values of page' do
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 20 OFFSET 0')
21
+ expect(query.to_sql).to include('LIMIT 25 OFFSET 0')
22
22
  end
23
23
  end
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require 'logger'
1
2
  require 'active_support'
2
3
  require 'rspec'
3
4
  require 'active_record'
@@ -1,9 +1,30 @@
1
1
  require 'active_record'
2
2
 
3
- ActiveRecord::Base.establish_connection(
4
- adapter: 'sqlite3',
5
- database: ':memory:'
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.3.1
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: '5'
19
+ version: '6'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '8'
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: '5'
29
+ version: '6'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '8'
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: 2.7.0
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.2.33
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: