ajax-datatables-rails 1.3.1 → 1.5.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/.codeclimate.yml +5 -23
- data/.github/workflows/ci.yml +35 -17
- data/.gitignore +6 -3
- data/.rubocop.yml +1 -1
- data/Appraisals +18 -25
- data/CHANGELOG.md +22 -0
- data/Gemfile +3 -0
- data/README.md +2 -2
- data/ajax-datatables-rails.gemspec +5 -2
- data/appraisal.yml +131 -0
- data/bin/rackup +27 -0
- data/config.ru +7 -0
- data/gemfiles/rails_6.0.6.gemfile +37 -0
- data/gemfiles/rails_6.1.7.gemfile +37 -0
- data/gemfiles/rails_7.0.8.gemfile +37 -0
- data/gemfiles/rails_7.1.0.gemfile +32 -0
- data/lib/ajax-datatables-rails/base.rb +33 -4
- data/lib/ajax-datatables-rails/datatable/column/search.rb +2 -6
- data/lib/ajax-datatables-rails/datatable/column.rb +11 -9
- data/lib/ajax-datatables-rails/datatable/simple_order.rb +2 -2
- data/lib/ajax-datatables-rails/version.rb +2 -2
- data/spec/ajax-datatables-rails/base_spec.rb +2 -0
- data/spec/ajax-datatables-rails/datatable/column_spec.rb +10 -0
- data/spec/ajax-datatables-rails/datatable/datatable_spec.rb +2 -2
- data/spec/ajax-datatables-rails/datatable/simple_order_spec.rb +9 -1
- data/spec/ajax-datatables-rails/orm/active_record_count_records_spec.rb +42 -0
- data/spec/ajax-datatables-rails/orm/active_record_filter_records_spec.rb +58 -26
- data/spec/ajax-datatables-rails/orm/active_record_paginate_records_spec.rb +2 -2
- data/spec/ajax-datatables-rails/orm/active_record_sort_records_spec.rb +2 -2
- data/spec/dummy/app/assets/config/manifest.js +0 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/routes.rb +5 -0
- data/spec/dummy/config/storage.yml +3 -0
- data/spec/{support → dummy/db}/schema.rb +0 -3
- data/spec/dummy/log/.gitignore +1 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/spec_helper.rb +20 -23
- data/spec/support/datatables/complex_datatable.rb +2 -0
- data/spec/support/datatables/datatable_custom_column.rb +17 -0
- data/spec/support/datatables/grouped_datatable_array.rb +8 -0
- data/spec/support/helpers/params.rb +9 -3
- data/spec/support/models/user.rb +3 -0
- metadata +66 -11
- data/gemfiles/rails_5.2.4.gemfile +0 -11
- data/gemfiles/rails_6.0.3.gemfile +0 -11
- data/gemfiles/rails_6.1.0.gemfile +0 -11
data/spec/spec_helper.rb
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'combustion'
|
4
|
+
|
5
|
+
Combustion.path = 'spec/dummy'
|
6
|
+
Combustion.initialize! :active_record, :action_controller
|
7
|
+
|
3
8
|
require 'simplecov'
|
4
9
|
require 'rspec'
|
5
10
|
require 'rspec/retry'
|
@@ -7,9 +12,6 @@ require 'database_cleaner'
|
|
7
12
|
require 'factory_bot'
|
8
13
|
require 'faker'
|
9
14
|
require 'pry'
|
10
|
-
require 'rails'
|
11
|
-
require 'active_record'
|
12
|
-
require 'action_controller'
|
13
15
|
|
14
16
|
# Start Simplecov
|
15
17
|
SimpleCov.start do
|
@@ -61,28 +63,23 @@ RSpec.configure do |config|
|
|
61
63
|
end
|
62
64
|
end
|
63
65
|
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
}
|
72
|
-
|
73
|
-
options =
|
74
|
-
case adapter
|
75
|
-
when 'postgresql'
|
76
|
-
options.merge(host: '127.0.0.1', port: 5432, username: 'postgres', password: 'postgres')
|
77
|
-
when 'mysql2'
|
78
|
-
options.merge(host: '127.0.0.1', port: 3306, username: 'root', password: 'root')
|
79
|
-
when 'oracle_enhanced'
|
80
|
-
options.merge(host: '127.0.0.1/xe', username: ENV['USER'], password: ENV['USER'], database: 'xe')
|
81
|
-
when 'sqlite3'
|
82
|
-
options.merge(database: ':memory:')
|
66
|
+
class RunningSpec
|
67
|
+
def self.sqlite?
|
68
|
+
ENV['DB_ADAPTER'] == 'sqlite3'
|
69
|
+
end
|
70
|
+
|
71
|
+
def self.oracle?
|
72
|
+
ENV['DB_ADAPTER'] == 'oracle_enhanced'
|
83
73
|
end
|
84
74
|
|
85
|
-
|
75
|
+
def self.mysql?
|
76
|
+
ENV['DB_ADAPTER'] == 'mysql2' || ENV['DB_ADAPTER'] == 'trilogy'
|
77
|
+
end
|
78
|
+
|
79
|
+
def self.postgresql?
|
80
|
+
ENV['DB_ADAPTER'] == 'postgresql' || ENV['DB_ADAPTER'] == 'postgis'
|
81
|
+
end
|
82
|
+
end
|
86
83
|
|
87
84
|
# Require our gem
|
88
85
|
require 'ajax-datatables-rails'
|
@@ -7,6 +7,7 @@ class ComplexDatatable < AjaxDatatablesRails::ActiveRecord
|
|
7
7
|
email: { source: 'User.email' },
|
8
8
|
first_name: { source: 'User.first_name' },
|
9
9
|
last_name: { source: 'User.last_name' },
|
10
|
+
full_name: { source: 'full_name' },
|
10
11
|
post_id: { source: 'User.post_id', orderable: false },
|
11
12
|
created_at: { source: 'User.created_at' },
|
12
13
|
}
|
@@ -19,6 +20,7 @@ class ComplexDatatable < AjaxDatatablesRails::ActiveRecord
|
|
19
20
|
email: record.email,
|
20
21
|
first_name: record.first_name,
|
21
22
|
last_name: record.last_name,
|
23
|
+
full_name: record.full_name,
|
22
24
|
post_id: record.post_id,
|
23
25
|
created_at: record.created_at,
|
24
26
|
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class DatatableCustomColumn < ComplexDatatable
|
4
|
+
def view_columns
|
5
|
+
super.deep_merge(full_name: { cond: filter_full_name })
|
6
|
+
end
|
7
|
+
|
8
|
+
def get_raw_records
|
9
|
+
User.select("*, CONCAT(first_name, ' ', last_name) as full_name")
|
10
|
+
end
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
def filter_full_name
|
15
|
+
->(_column, value) { ::Arel::Nodes::SqlLiteral.new("CONCAT(first_name, ' ', last_name)").matches("#{value}%") }
|
16
|
+
end
|
17
|
+
end
|
@@ -31,12 +31,18 @@ def sample_params
|
|
31
31
|
}
|
32
32
|
},
|
33
33
|
'4' => {
|
34
|
-
'data' => '
|
34
|
+
'data' => 'full_name', 'name' => '', 'searchable' => 'true', 'orderable' => 'true',
|
35
35
|
'search' => {
|
36
36
|
'value' => '', 'regex' => 'false'
|
37
37
|
}
|
38
38
|
},
|
39
39
|
'5' => {
|
40
|
+
'data' => 'post_id', 'name' => '', 'searchable' => 'true', 'orderable' => 'true',
|
41
|
+
'search' => {
|
42
|
+
'value' => '', 'regex' => 'false'
|
43
|
+
}
|
44
|
+
},
|
45
|
+
'6' => {
|
40
46
|
'data' => 'created_at', 'name' => '', 'searchable' => 'true', 'orderable' => 'true',
|
41
47
|
'search' => {
|
42
48
|
'value' => '', 'regex' => 'false'
|
@@ -64,9 +70,9 @@ end
|
|
64
70
|
|
65
71
|
def nulls_last_sql(datatable)
|
66
72
|
case datatable.db_adapter
|
67
|
-
when :pg, :postgresql, :postgres, :oracle
|
73
|
+
when :pg, :postgresql, :postgres, :oracle, :postgis
|
68
74
|
'NULLS LAST'
|
69
|
-
when :mysql, :mysql2, :sqlite, :sqlite3
|
75
|
+
when :mysql, :mysql2, :trilogy, :sqlite, :sqlite3
|
70
76
|
'IS NULL'
|
71
77
|
else
|
72
78
|
raise 'unsupported database adapter'
|
data/spec/support/models/user.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ajax-datatables-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joel Quenneville
|
@@ -9,8 +9,22 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2024-04-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rails
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ">="
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '6.0'
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '6.0'
|
14
28
|
- !ruby/object:Gem::Dependency
|
15
29
|
name: zeitwerk
|
16
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -53,6 +67,20 @@ dependencies:
|
|
53
67
|
- - ">="
|
54
68
|
- !ruby/object:Gem::Version
|
55
69
|
version: '0'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: combustion
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - "~>"
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '1.3'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - "~>"
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '1.3'
|
56
84
|
- !ruby/object:Gem::Dependency
|
57
85
|
name: database_cleaner
|
58
86
|
requirement: !ruby/object:Gem::Requirement
|
@@ -152,19 +180,19 @@ dependencies:
|
|
152
180
|
- !ruby/object:Gem::Version
|
153
181
|
version: '0'
|
154
182
|
- !ruby/object:Gem::Dependency
|
155
|
-
name:
|
183
|
+
name: puma
|
156
184
|
requirement: !ruby/object:Gem::Requirement
|
157
185
|
requirements:
|
158
186
|
- - ">="
|
159
187
|
- !ruby/object:Gem::Version
|
160
|
-
version: '
|
188
|
+
version: '0'
|
161
189
|
type: :development
|
162
190
|
prerelease: false
|
163
191
|
version_requirements: !ruby/object:Gem::Requirement
|
164
192
|
requirements:
|
165
193
|
- - ">="
|
166
194
|
- !ruby/object:Gem::Version
|
167
|
-
version: '
|
195
|
+
version: '0'
|
168
196
|
- !ruby/object:Gem::Dependency
|
169
197
|
name: rake
|
170
198
|
requirement: !ruby/object:Gem::Requirement
|
@@ -235,6 +263,20 @@ dependencies:
|
|
235
263
|
- - ">="
|
236
264
|
- !ruby/object:Gem::Version
|
237
265
|
version: '0'
|
266
|
+
- !ruby/object:Gem::Dependency
|
267
|
+
name: sqlite3
|
268
|
+
requirement: !ruby/object:Gem::Requirement
|
269
|
+
requirements:
|
270
|
+
- - "~>"
|
271
|
+
- !ruby/object:Gem::Version
|
272
|
+
version: 1.4.0
|
273
|
+
type: :development
|
274
|
+
prerelease: false
|
275
|
+
version_requirements: !ruby/object:Gem::Requirement
|
276
|
+
requirements:
|
277
|
+
- - "~>"
|
278
|
+
- !ruby/object:Gem::Version
|
279
|
+
version: 1.4.0
|
238
280
|
description: A wrapper around datatable's ajax methods that allow synchronization
|
239
281
|
with server-side pagination in a rails app
|
240
282
|
email:
|
@@ -257,18 +299,22 @@ files:
|
|
257
299
|
- README.md
|
258
300
|
- Rakefile
|
259
301
|
- ajax-datatables-rails.gemspec
|
302
|
+
- appraisal.yml
|
260
303
|
- bin/_guard-core
|
261
304
|
- bin/appraisal
|
262
305
|
- bin/bundle
|
263
306
|
- bin/guard
|
307
|
+
- bin/rackup
|
264
308
|
- bin/rake
|
265
309
|
- bin/rspec
|
266
310
|
- bin/rubocop
|
311
|
+
- config.ru
|
267
312
|
- doc/migrate.md
|
268
313
|
- doc/webpack.md
|
269
|
-
- gemfiles/
|
270
|
-
- gemfiles/rails_6.
|
271
|
-
- gemfiles/
|
314
|
+
- gemfiles/rails_6.0.6.gemfile
|
315
|
+
- gemfiles/rails_6.1.7.gemfile
|
316
|
+
- gemfiles/rails_7.0.8.gemfile
|
317
|
+
- gemfiles/rails_7.1.0.gemfile
|
272
318
|
- lib/ajax-datatables-rails.rb
|
273
319
|
- lib/ajax-datatables-rails/active_record.rb
|
274
320
|
- lib/ajax-datatables-rails/base.rb
|
@@ -291,9 +337,17 @@ files:
|
|
291
337
|
- spec/ajax-datatables-rails/datatable/datatable_spec.rb
|
292
338
|
- spec/ajax-datatables-rails/datatable/simple_order_spec.rb
|
293
339
|
- spec/ajax-datatables-rails/datatable/simple_search_spec.rb
|
340
|
+
- spec/ajax-datatables-rails/orm/active_record_count_records_spec.rb
|
294
341
|
- spec/ajax-datatables-rails/orm/active_record_filter_records_spec.rb
|
295
342
|
- spec/ajax-datatables-rails/orm/active_record_paginate_records_spec.rb
|
296
343
|
- spec/ajax-datatables-rails/orm/active_record_sort_records_spec.rb
|
344
|
+
- spec/dummy/app/assets/config/manifest.js
|
345
|
+
- spec/dummy/config/database.yml
|
346
|
+
- spec/dummy/config/routes.rb
|
347
|
+
- spec/dummy/config/storage.yml
|
348
|
+
- spec/dummy/db/schema.rb
|
349
|
+
- spec/dummy/log/.gitignore
|
350
|
+
- spec/dummy/public/favicon.ico
|
297
351
|
- spec/factories/user.rb
|
298
352
|
- spec/install_oracle.sh
|
299
353
|
- spec/spec_helper.rb
|
@@ -304,10 +358,11 @@ files:
|
|
304
358
|
- spec/support/datatables/datatable_cond_proc.rb
|
305
359
|
- spec/support/datatables/datatable_cond_string.rb
|
306
360
|
- spec/support/datatables/datatable_cond_unknown.rb
|
361
|
+
- spec/support/datatables/datatable_custom_column.rb
|
307
362
|
- spec/support/datatables/datatable_order_nulls_last.rb
|
363
|
+
- spec/support/datatables/grouped_datatable_array.rb
|
308
364
|
- spec/support/helpers/params.rb
|
309
365
|
- spec/support/models/user.rb
|
310
|
-
- spec/support/schema.rb
|
311
366
|
homepage: https://github.com/jbox-web/ajax-datatables-rails
|
312
367
|
licenses:
|
313
368
|
- MIT
|
@@ -324,14 +379,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
324
379
|
requirements:
|
325
380
|
- - ">="
|
326
381
|
- !ruby/object:Gem::Version
|
327
|
-
version: 2.
|
382
|
+
version: 2.7.0
|
328
383
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
329
384
|
requirements:
|
330
385
|
- - ">="
|
331
386
|
- !ruby/object:Gem::Version
|
332
387
|
version: '0'
|
333
388
|
requirements: []
|
334
|
-
rubygems_version: 3.
|
389
|
+
rubygems_version: 3.5.7
|
335
390
|
signing_key:
|
336
391
|
specification_version: 4
|
337
392
|
summary: A gem that simplifies using datatables and hundreds of records via ajax
|
@@ -1,11 +0,0 @@
|
|
1
|
-
# This file was generated by Appraisal
|
2
|
-
|
3
|
-
source "https://rubygems.org"
|
4
|
-
|
5
|
-
gem "rails", "5.2.4"
|
6
|
-
gem "activerecord-oracle_enhanced-adapter", "~> 5.2.0"
|
7
|
-
gem "sqlite3", "~> 1.3.0"
|
8
|
-
gem "mysql2"
|
9
|
-
gem "ruby-oci8" if ENV["DB_ADAPTER"] == "oracle_enhanced"
|
10
|
-
|
11
|
-
gemspec path: "../"
|
@@ -1,11 +0,0 @@
|
|
1
|
-
# This file was generated by Appraisal
|
2
|
-
|
3
|
-
source "https://rubygems.org"
|
4
|
-
|
5
|
-
gem "rails", "6.0.3"
|
6
|
-
gem "activerecord-oracle_enhanced-adapter", "~> 6.0.0"
|
7
|
-
gem "sqlite3", "~> 1.4.0"
|
8
|
-
gem "mysql2"
|
9
|
-
gem "ruby-oci8" if ENV["DB_ADAPTER"] == "oracle_enhanced"
|
10
|
-
|
11
|
-
gemspec path: "../"
|
@@ -1,11 +0,0 @@
|
|
1
|
-
# This file was generated by Appraisal
|
2
|
-
|
3
|
-
source "https://rubygems.org"
|
4
|
-
|
5
|
-
gem "rails", "6.1.0"
|
6
|
-
gem "activerecord-oracle_enhanced-adapter", "~> 6.1.0"
|
7
|
-
gem "sqlite3", "~> 1.4.0"
|
8
|
-
gem "mysql2"
|
9
|
-
gem "ruby-oci8" if ENV["DB_ADAPTER"] == "oracle_enhanced"
|
10
|
-
|
11
|
-
gemspec path: "../"
|