ajax-datatables-rails 1.3.0 → 1.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/.codeclimate.yml +5 -23
- data/.github/workflows/ci.yml +16 -8
- data/.gitignore +6 -3
- data/.rubocop.yml +1 -1
- data/Appraisals +18 -25
- data/CHANGELOG.md +14 -0
- data/Gemfile +2 -0
- data/README.md +15 -15
- data/ajax-datatables-rails.gemspec +5 -2
- data/appraisal.yml +56 -0
- data/bin/bundle +114 -0
- data/bin/rackup +27 -0
- data/config.ru +7 -0
- data/doc/migrate.md +1 -1
- data/gemfiles/rails_5.2.8.gemfile +21 -0
- data/gemfiles/rails_6.0.6.gemfile +21 -0
- data/gemfiles/rails_6.1.7.gemfile +21 -0
- data/gemfiles/rails_7.0.4.gemfile +21 -0
- data/lib/ajax-datatables-rails/base.rb +21 -1
- data/lib/ajax-datatables-rails/datatable/column/search.rb +8 -8
- data/lib/ajax-datatables-rails/datatable/column.rb +10 -9
- data/lib/ajax-datatables-rails/datatable/datatable.rb +0 -1
- data/lib/ajax-datatables-rails/version.rb +1 -1
- data/spec/ajax-datatables-rails/base_spec.rb +39 -19
- data/spec/ajax-datatables-rails/datatable/column_spec.rb +30 -33
- data/spec/ajax-datatables-rails/datatable/datatable_spec.rb +12 -10
- data/spec/ajax-datatables-rails/datatable/simple_order_spec.rb +5 -3
- data/spec/ajax-datatables-rails/datatable/simple_search_spec.rb +4 -2
- data/spec/ajax-datatables-rails/orm/active_record_filter_records_spec.rb +109 -120
- data/spec/ajax-datatables-rails/orm/active_record_paginate_records_spec.rb +6 -4
- data/spec/ajax-datatables-rails/orm/active_record_sort_records_spec.rb +7 -5
- 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 +3 -4
- data/spec/dummy/log/.gitignore +1 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/factories/user.rb +3 -1
- data/spec/spec_helper.rb +32 -19
- data/spec/support/datatables/complex_datatable.rb +4 -0
- data/spec/support/datatables/complex_datatable_array.rb +2 -0
- data/spec/support/datatables/datatable_cond_date.rb +2 -0
- data/spec/support/datatables/datatable_cond_numeric.rb +2 -0
- data/spec/support/datatables/datatable_cond_proc.rb +2 -0
- data/spec/support/datatables/datatable_cond_string.rb +4 -2
- data/spec/support/datatables/datatable_cond_unknown.rb +2 -0
- data/spec/support/datatables/datatable_custom_column.rb +17 -0
- data/spec/support/datatables/datatable_order_nulls_last.rb +2 -0
- data/spec/support/helpers/params.rb +14 -6
- data/spec/support/models/user.rb +5 -0
- metadata +65 -12
- 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/ajax-datatables-rails/orm/active_record_spec.rb +0 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a8603311c92aa4db99c7b94103de8ed606a61ffafaf630724517d479cd478331
|
4
|
+
data.tar.gz: 2baccc608a73493ecb7c28570075a9dda5919c91010db322e98a9c8d7032b4be
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e2097c47d5af467755b87bd09abe9551b1eeb6334476358508bc4615657b66c0ae2b38b7a4416475e3783f3e88f99d35be984c6c9a9e55e6ded40ee382f2ffbe
|
7
|
+
data.tar.gz: 4fbbaf7373f5acb5548ff354e5d191e195598302756e6051bd37a2876fee4e4f8450d3b535c7e98fd5654923740286d6c67b29d4570868d816200e7568cf2ecc
|
data/.codeclimate.yml
CHANGED
@@ -1,26 +1,8 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
duplication:
|
4
|
-
enabled: true
|
5
|
-
config:
|
6
|
-
languages:
|
7
|
-
- ruby
|
8
|
-
- javascript
|
9
|
-
- python
|
10
|
-
- php
|
11
|
-
fixme:
|
12
|
-
enabled: true
|
2
|
+
plugins:
|
13
3
|
rubocop:
|
14
4
|
enabled: true
|
15
|
-
|
16
|
-
|
17
|
-
-
|
18
|
-
-
|
19
|
-
- "**.jsx"
|
20
|
-
- "**.module"
|
21
|
-
- "**.php"
|
22
|
-
- "**.py"
|
23
|
-
- "**.rb"
|
24
|
-
exclude_paths:
|
25
|
-
- spec/
|
26
|
-
- lib/generators/rails/templates/
|
5
|
+
channel: rubocop-1-31-0
|
6
|
+
exclude_patterns:
|
7
|
+
- spec/
|
8
|
+
- lib/generators/rails/templates/
|
data/.github/workflows/ci.yml
CHANGED
@@ -2,8 +2,14 @@
|
|
2
2
|
name: CI
|
3
3
|
|
4
4
|
on:
|
5
|
-
|
6
|
-
|
5
|
+
push:
|
6
|
+
branches:
|
7
|
+
- '**'
|
8
|
+
pull_request:
|
9
|
+
branches:
|
10
|
+
- '**'
|
11
|
+
schedule:
|
12
|
+
- cron: '0 4 1 * *'
|
7
13
|
|
8
14
|
jobs:
|
9
15
|
rspec:
|
@@ -46,14 +52,14 @@ jobs:
|
|
46
52
|
fail-fast: false
|
47
53
|
matrix:
|
48
54
|
ruby:
|
55
|
+
- '3.1'
|
49
56
|
- '3.0'
|
50
57
|
- '2.7'
|
51
|
-
- '2.6'
|
52
|
-
- '2.5'
|
53
58
|
rails:
|
54
|
-
- rails_5.2.
|
55
|
-
- rails_6.0.
|
56
|
-
- rails_6.1.
|
59
|
+
- rails_5.2.8
|
60
|
+
- rails_6.0.6
|
61
|
+
- rails_6.1.7
|
62
|
+
- rails_7.0.4
|
57
63
|
adapter:
|
58
64
|
- sqlite3
|
59
65
|
- postgresql
|
@@ -61,7 +67,9 @@ jobs:
|
|
61
67
|
- oracle_enhanced
|
62
68
|
exclude:
|
63
69
|
- ruby: '3.0'
|
64
|
-
rails: rails_5.2.
|
70
|
+
rails: rails_5.2.8
|
71
|
+
- ruby: '3.1'
|
72
|
+
rails: rails_5.2.8
|
65
73
|
|
66
74
|
steps:
|
67
75
|
- name: Checkout
|
data/.gitignore
CHANGED
@@ -10,11 +10,14 @@
|
|
10
10
|
/coverage
|
11
11
|
/tmp
|
12
12
|
|
13
|
-
# Ignore sqlite db file
|
14
|
-
/ajax_datatables_rails
|
15
|
-
|
16
13
|
# RVM files
|
17
14
|
/.ruby-version
|
18
15
|
|
19
16
|
# Gem files
|
20
17
|
/*.gem
|
18
|
+
|
19
|
+
# Ignore dummy app files
|
20
|
+
spec/dummy/db/*.sqlite3
|
21
|
+
spec/dummy/db/*.sqlite3-journal
|
22
|
+
spec/dummy/log/*.log
|
23
|
+
spec/dummy/tmp/
|
data/.rubocop.yml
CHANGED
data/Appraisals
CHANGED
@@ -1,34 +1,27 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
'5.2.4' => {
|
5
|
-
'activerecord-oracle_enhanced-adapter' => '~> 5.2.0',
|
6
|
-
'sqlite3' => '~> 1.3.0',
|
7
|
-
'mysql2' => '',
|
8
|
-
'ruby-oci8' => '',
|
9
|
-
},
|
10
|
-
'6.0.3' => {
|
11
|
-
'activerecord-oracle_enhanced-adapter' => '~> 6.0.0',
|
12
|
-
'sqlite3' => '~> 1.4.0',
|
13
|
-
'mysql2' => '',
|
14
|
-
'ruby-oci8' => '',
|
15
|
-
},
|
16
|
-
'6.1.0' => {
|
17
|
-
'activerecord-oracle_enhanced-adapter' => '~> 6.1.0',
|
18
|
-
'sqlite3' => '~> 1.4.0',
|
19
|
-
'mysql2' => '',
|
20
|
-
'ruby-oci8' => '',
|
21
|
-
},
|
22
|
-
}.freeze
|
3
|
+
require 'yaml'
|
23
4
|
|
24
|
-
|
5
|
+
rails_versions = YAML.load(File.read('appraisal.yml'))
|
6
|
+
|
7
|
+
rails_versions.each do |version, gems|
|
25
8
|
appraise "rails_#{version}" do
|
26
9
|
gem 'rails', version
|
27
|
-
gems.each do |name,
|
28
|
-
if
|
29
|
-
|
10
|
+
gems.each do |name, opts|
|
11
|
+
if opts['install_if']
|
12
|
+
install_if opts['install_if'] do
|
13
|
+
if opts['version'].empty?
|
14
|
+
gem name
|
15
|
+
else
|
16
|
+
gem name, opts['version']
|
17
|
+
end
|
18
|
+
end
|
30
19
|
else
|
31
|
-
|
20
|
+
if opts['version'].empty?
|
21
|
+
gem name
|
22
|
+
else
|
23
|
+
gem name, opts['version']
|
24
|
+
end
|
32
25
|
end
|
33
26
|
end
|
34
27
|
end
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,19 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
+
## 1.4.0 (2022-12-18)
|
4
|
+
|
5
|
+
* Improve tests
|
6
|
+
* Add tests on custom_field feature
|
7
|
+
* Drop support of Ruby 2.5
|
8
|
+
* Drop support of Ruby 2.6
|
9
|
+
* Add support of Ruby 3.1
|
10
|
+
* Add support of Rails 7
|
11
|
+
* Fix: prevent establishing ActiveRecord connection on startup
|
12
|
+
|
13
|
+
## 1.3.1 (2021-02-09)
|
14
|
+
|
15
|
+
* Fix rare case error `uninitialized constant AjaxDatatablesRails::ActiveRecord::Base` (merge: [#379](https://github.com/jbox-web/ajax-datatables-rails/pull/379))
|
16
|
+
|
3
17
|
## 1.3.0 (2021-01-04)
|
4
18
|
|
5
19
|
* Drop support of Rails 5.0.x and 5.1.x
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -532,13 +532,13 @@ available in our datatable to search and sort by.
|
|
532
532
|
|
533
533
|
def view_columns
|
534
534
|
@view_columns ||= {
|
535
|
-
first_name: 'User.first_name',
|
536
|
-
last_name: 'User.last_name',
|
537
|
-
order_number: 'PurchaseOrder.number',
|
538
|
-
order_created_at: 'PurchaseOrder.created_at',
|
539
|
-
quantity: 'Purchase::LineItem.quantity',
|
540
|
-
unit_price: 'Purchase::LineItem.unit_price',
|
541
|
-
item_total: 'Purchase::LineItem.item_total'
|
535
|
+
first_name: { source: 'User.first_name' },
|
536
|
+
last_name: { source: 'User.last_name' },
|
537
|
+
order_number: { source: 'PurchaseOrder.number' },
|
538
|
+
order_created_at: { source: 'PurchaseOrder.created_at' },
|
539
|
+
quantity: { source: 'Purchase::LineItem.quantity' },
|
540
|
+
unit_price: { source: 'Purchase::LineItem.unit_price' },
|
541
|
+
item_total: { source: 'Purchase::LineItem.item_total }'
|
542
542
|
}
|
543
543
|
end
|
544
544
|
```
|
@@ -570,14 +570,14 @@ The related definition would be :
|
|
570
570
|
```ruby
|
571
571
|
def view_columns
|
572
572
|
@view_columns ||= {
|
573
|
-
course_type: 'CourseType.name',
|
574
|
-
course_name: 'Course.name',
|
575
|
-
contact_name: 'Contact.full_name',
|
576
|
-
competency_type: 'CompetencyType.name',
|
577
|
-
event_title: 'Event.title',
|
578
|
-
event_start: 'Event.event_start',
|
579
|
-
event_end: 'Event.event_end',
|
580
|
-
event_status: 'Event.status',
|
573
|
+
course_type: { source: 'CourseType.name' },
|
574
|
+
course_name: { source: 'Course.name' },
|
575
|
+
contact_name: { source: 'Contact.full_name' },
|
576
|
+
competency_type: { source: 'CompetencyType.name' },
|
577
|
+
event_title: { source: 'Event.title' },
|
578
|
+
event_start: { source: 'Event.event_start' },
|
579
|
+
event_end: { source: 'Event.event_end' },
|
580
|
+
event_status: { source: 'Event.status' },
|
581
581
|
}
|
582
582
|
end
|
583
583
|
|
@@ -19,14 +19,16 @@ Gem::Specification.new do |s|
|
|
19
19
|
'bug_tracker_uri' => 'https://github.com/jbox-web/ajax-datatables-rails/issues',
|
20
20
|
}
|
21
21
|
|
22
|
-
s.required_ruby_version = '>= 2.
|
22
|
+
s.required_ruby_version = '>= 2.7.0'
|
23
23
|
|
24
24
|
s.files = `git ls-files`.split("\n")
|
25
25
|
|
26
|
+
s.add_runtime_dependency 'rails', '>= 5.2'
|
26
27
|
s.add_runtime_dependency 'zeitwerk'
|
27
28
|
|
28
29
|
s.add_development_dependency 'activerecord-oracle_enhanced-adapter'
|
29
30
|
s.add_development_dependency 'appraisal'
|
31
|
+
s.add_development_dependency 'combustion', '~> 1.3'
|
30
32
|
s.add_development_dependency 'database_cleaner'
|
31
33
|
s.add_development_dependency 'factory_bot'
|
32
34
|
s.add_development_dependency 'faker'
|
@@ -34,10 +36,11 @@ Gem::Specification.new do |s|
|
|
34
36
|
s.add_development_dependency 'guard-rspec'
|
35
37
|
s.add_development_dependency 'pg'
|
36
38
|
s.add_development_dependency 'pry'
|
37
|
-
s.add_development_dependency '
|
39
|
+
s.add_development_dependency 'puma'
|
38
40
|
s.add_development_dependency 'rake'
|
39
41
|
s.add_development_dependency 'rspec'
|
40
42
|
s.add_development_dependency 'rspec-retry'
|
41
43
|
s.add_development_dependency 'rubocop'
|
42
44
|
s.add_development_dependency 'simplecov'
|
45
|
+
s.add_development_dependency 'sqlite3', '~> 1.4.0'
|
43
46
|
end
|
data/appraisal.yml
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
---
|
2
|
+
5.2.8:
|
3
|
+
sqlite3:
|
4
|
+
version: ~> 1.3.0
|
5
|
+
install_if: '-> { ENV["DB_ADAPTER"] == "sqlite3" }'
|
6
|
+
mysql2:
|
7
|
+
version: ''
|
8
|
+
install_if: '-> { ENV["DB_ADAPTER"] == "mysql2" }'
|
9
|
+
activerecord-oracle_enhanced-adapter:
|
10
|
+
version: ~> 5.2.0
|
11
|
+
install_if: '-> { ENV["DB_ADAPTER"] == "oracle_enhanced" }'
|
12
|
+
ruby-oci8:
|
13
|
+
version: ''
|
14
|
+
install_if: '-> { ENV["DB_ADAPTER"] == "oracle_enhanced" }'
|
15
|
+
|
16
|
+
6.0.6:
|
17
|
+
sqlite3:
|
18
|
+
version: ~> 1.4.0
|
19
|
+
install_if: '-> { ENV["DB_ADAPTER"] == "sqlite3" }'
|
20
|
+
mysql2:
|
21
|
+
version: ''
|
22
|
+
install_if: '-> { ENV["DB_ADAPTER"] == "mysql2" }'
|
23
|
+
activerecord-oracle_enhanced-adapter:
|
24
|
+
version: ~> 6.0.0
|
25
|
+
install_if: '-> { ENV["DB_ADAPTER"] == "oracle_enhanced" }'
|
26
|
+
ruby-oci8:
|
27
|
+
version: ''
|
28
|
+
install_if: '-> { ENV["DB_ADAPTER"] == "oracle_enhanced" }'
|
29
|
+
|
30
|
+
6.1.7:
|
31
|
+
sqlite3:
|
32
|
+
version: ~> 1.4.0
|
33
|
+
install_if: '-> { ENV["DB_ADAPTER"] == "sqlite3" }'
|
34
|
+
mysql2:
|
35
|
+
version: ''
|
36
|
+
install_if: '-> { ENV["DB_ADAPTER"] == "mysql2" }'
|
37
|
+
activerecord-oracle_enhanced-adapter:
|
38
|
+
version: ~> 6.1.0
|
39
|
+
install_if: '-> { ENV["DB_ADAPTER"] == "oracle_enhanced" }'
|
40
|
+
ruby-oci8:
|
41
|
+
version: ''
|
42
|
+
install_if: '-> { ENV["DB_ADAPTER"] == "oracle_enhanced" }'
|
43
|
+
|
44
|
+
7.0.4:
|
45
|
+
sqlite3:
|
46
|
+
version: ~> 1.4.0
|
47
|
+
install_if: '-> { ENV["DB_ADAPTER"] == "sqlite3" }'
|
48
|
+
mysql2:
|
49
|
+
version: ''
|
50
|
+
install_if: '-> { ENV["DB_ADAPTER"] == "mysql2" }'
|
51
|
+
activerecord-oracle_enhanced-adapter:
|
52
|
+
version: ~> 7.0.0
|
53
|
+
install_if: '-> { ENV["DB_ADAPTER"] == "oracle_enhanced" }'
|
54
|
+
ruby-oci8:
|
55
|
+
version: ''
|
56
|
+
install_if: '-> { ENV["DB_ADAPTER"] == "oracle_enhanced" }'
|
data/bin/bundle
ADDED
@@ -0,0 +1,114 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
#
|
5
|
+
# This file was generated by Bundler.
|
6
|
+
#
|
7
|
+
# The application 'bundle' is installed as part of a gem, and
|
8
|
+
# this file is here to facilitate running it.
|
9
|
+
#
|
10
|
+
|
11
|
+
require "rubygems"
|
12
|
+
|
13
|
+
m = Module.new do
|
14
|
+
module_function
|
15
|
+
|
16
|
+
def invoked_as_script?
|
17
|
+
File.expand_path($0) == File.expand_path(__FILE__)
|
18
|
+
end
|
19
|
+
|
20
|
+
def env_var_version
|
21
|
+
ENV["BUNDLER_VERSION"]
|
22
|
+
end
|
23
|
+
|
24
|
+
def cli_arg_version
|
25
|
+
return unless invoked_as_script? # don't want to hijack other binstubs
|
26
|
+
return unless "update".start_with?(ARGV.first || " ") # must be running `bundle update`
|
27
|
+
bundler_version = nil
|
28
|
+
update_index = nil
|
29
|
+
ARGV.each_with_index do |a, i|
|
30
|
+
if update_index && update_index.succ == i && a =~ Gem::Version::ANCHORED_VERSION_PATTERN
|
31
|
+
bundler_version = a
|
32
|
+
end
|
33
|
+
next unless a =~ /\A--bundler(?:[= ](#{Gem::Version::VERSION_PATTERN}))?\z/
|
34
|
+
bundler_version = $1
|
35
|
+
update_index = i
|
36
|
+
end
|
37
|
+
bundler_version
|
38
|
+
end
|
39
|
+
|
40
|
+
def gemfile
|
41
|
+
gemfile = ENV["BUNDLE_GEMFILE"]
|
42
|
+
return gemfile if gemfile && !gemfile.empty?
|
43
|
+
|
44
|
+
File.expand_path("../../Gemfile", __FILE__)
|
45
|
+
end
|
46
|
+
|
47
|
+
def lockfile
|
48
|
+
lockfile =
|
49
|
+
case File.basename(gemfile)
|
50
|
+
when "gems.rb" then gemfile.sub(/\.rb$/, gemfile)
|
51
|
+
else "#{gemfile}.lock"
|
52
|
+
end
|
53
|
+
File.expand_path(lockfile)
|
54
|
+
end
|
55
|
+
|
56
|
+
def lockfile_version
|
57
|
+
return unless File.file?(lockfile)
|
58
|
+
lockfile_contents = File.read(lockfile)
|
59
|
+
return unless lockfile_contents =~ /\n\nBUNDLED WITH\n\s{2,}(#{Gem::Version::VERSION_PATTERN})\n/
|
60
|
+
Regexp.last_match(1)
|
61
|
+
end
|
62
|
+
|
63
|
+
def bundler_version
|
64
|
+
@bundler_version ||=
|
65
|
+
env_var_version || cli_arg_version ||
|
66
|
+
lockfile_version
|
67
|
+
end
|
68
|
+
|
69
|
+
def bundler_requirement
|
70
|
+
return "#{Gem::Requirement.default}.a" unless bundler_version
|
71
|
+
|
72
|
+
bundler_gem_version = Gem::Version.new(bundler_version)
|
73
|
+
|
74
|
+
requirement = bundler_gem_version.approximate_recommendation
|
75
|
+
|
76
|
+
return requirement unless Gem::Version.new(Gem::VERSION) < Gem::Version.new("2.7.0")
|
77
|
+
|
78
|
+
requirement += ".a" if bundler_gem_version.prerelease?
|
79
|
+
|
80
|
+
requirement
|
81
|
+
end
|
82
|
+
|
83
|
+
def load_bundler!
|
84
|
+
ENV["BUNDLE_GEMFILE"] ||= gemfile
|
85
|
+
|
86
|
+
activate_bundler
|
87
|
+
end
|
88
|
+
|
89
|
+
def activate_bundler
|
90
|
+
gem_error = activation_error_handling do
|
91
|
+
gem "bundler", bundler_requirement
|
92
|
+
end
|
93
|
+
return if gem_error.nil?
|
94
|
+
require_error = activation_error_handling do
|
95
|
+
require "bundler/version"
|
96
|
+
end
|
97
|
+
return if require_error.nil? && Gem::Requirement.new(bundler_requirement).satisfied_by?(Gem::Version.new(Bundler::VERSION))
|
98
|
+
warn "Activating bundler (#{bundler_requirement}) failed:\n#{gem_error.message}\n\nTo install the version of bundler this project requires, run `gem install bundler -v '#{bundler_requirement}'`"
|
99
|
+
exit 42
|
100
|
+
end
|
101
|
+
|
102
|
+
def activation_error_handling
|
103
|
+
yield
|
104
|
+
nil
|
105
|
+
rescue StandardError, LoadError => e
|
106
|
+
e
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
m.load_bundler!
|
111
|
+
|
112
|
+
if m.invoked_as_script?
|
113
|
+
load Gem.bin_path("bundler", "bundle")
|
114
|
+
end
|
data/bin/rackup
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
#
|
5
|
+
# This file was generated by Bundler.
|
6
|
+
#
|
7
|
+
# The application 'rackup' is installed as part of a gem, and
|
8
|
+
# this file is here to facilitate running it.
|
9
|
+
#
|
10
|
+
|
11
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)
|
12
|
+
|
13
|
+
bundle_binstub = File.expand_path("bundle", __dir__)
|
14
|
+
|
15
|
+
if File.file?(bundle_binstub)
|
16
|
+
if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
|
17
|
+
load(bundle_binstub)
|
18
|
+
else
|
19
|
+
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
20
|
+
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
require "rubygems"
|
25
|
+
require "bundler/setup"
|
26
|
+
|
27
|
+
load Gem.bin_path("rack", "rackup")
|
data/config.ru
ADDED
data/doc/migrate.md
CHANGED
@@ -0,0 +1,21 @@
|
|
1
|
+
# This file was generated by Appraisal
|
2
|
+
|
3
|
+
source "https://rubygems.org"
|
4
|
+
|
5
|
+
gem "appraisal", git: "https://github.com/n-rodriguez/appraisal.git", branch: "wip/combustion"
|
6
|
+
gem "rails", "5.2.8"
|
7
|
+
|
8
|
+
install_if -> { ENV["DB_ADAPTER"] == "sqlite3" } do
|
9
|
+
gem "sqlite3", "~> 1.3.0"
|
10
|
+
end
|
11
|
+
|
12
|
+
install_if -> { ENV["DB_ADAPTER"] == "mysql2" } do
|
13
|
+
gem "mysql2"
|
14
|
+
end
|
15
|
+
|
16
|
+
install_if -> { ENV["DB_ADAPTER"] == "oracle_enhanced" } do
|
17
|
+
gem "activerecord-oracle_enhanced-adapter", "~> 5.2.0"
|
18
|
+
gem "ruby-oci8"
|
19
|
+
end
|
20
|
+
|
21
|
+
gemspec path: "../"
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# This file was generated by Appraisal
|
2
|
+
|
3
|
+
source "https://rubygems.org"
|
4
|
+
|
5
|
+
gem "appraisal", git: "https://github.com/n-rodriguez/appraisal.git", branch: "wip/combustion"
|
6
|
+
gem "rails", "6.0.6"
|
7
|
+
|
8
|
+
install_if -> { ENV["DB_ADAPTER"] == "sqlite3" } do
|
9
|
+
gem "sqlite3", "~> 1.4.0"
|
10
|
+
end
|
11
|
+
|
12
|
+
install_if -> { ENV["DB_ADAPTER"] == "mysql2" } do
|
13
|
+
gem "mysql2"
|
14
|
+
end
|
15
|
+
|
16
|
+
install_if -> { ENV["DB_ADAPTER"] == "oracle_enhanced" } do
|
17
|
+
gem "activerecord-oracle_enhanced-adapter", "~> 6.0.0"
|
18
|
+
gem "ruby-oci8"
|
19
|
+
end
|
20
|
+
|
21
|
+
gemspec path: "../"
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# This file was generated by Appraisal
|
2
|
+
|
3
|
+
source "https://rubygems.org"
|
4
|
+
|
5
|
+
gem "appraisal", git: "https://github.com/n-rodriguez/appraisal.git", branch: "wip/combustion"
|
6
|
+
gem "rails", "6.1.7"
|
7
|
+
|
8
|
+
install_if -> { ENV["DB_ADAPTER"] == "sqlite3" } do
|
9
|
+
gem "sqlite3", "~> 1.4.0"
|
10
|
+
end
|
11
|
+
|
12
|
+
install_if -> { ENV["DB_ADAPTER"] == "mysql2" } do
|
13
|
+
gem "mysql2"
|
14
|
+
end
|
15
|
+
|
16
|
+
install_if -> { ENV["DB_ADAPTER"] == "oracle_enhanced" } do
|
17
|
+
gem "activerecord-oracle_enhanced-adapter", "~> 6.1.0"
|
18
|
+
gem "ruby-oci8"
|
19
|
+
end
|
20
|
+
|
21
|
+
gemspec path: "../"
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# This file was generated by Appraisal
|
2
|
+
|
3
|
+
source "https://rubygems.org"
|
4
|
+
|
5
|
+
gem "appraisal", git: "https://github.com/n-rodriguez/appraisal.git", branch: "wip/combustion"
|
6
|
+
gem "rails", "7.0.4"
|
7
|
+
|
8
|
+
install_if -> { ENV["DB_ADAPTER"] == "sqlite3" } do
|
9
|
+
gem "sqlite3", "~> 1.4.0"
|
10
|
+
end
|
11
|
+
|
12
|
+
install_if -> { ENV["DB_ADAPTER"] == "mysql2" } do
|
13
|
+
gem "mysql2"
|
14
|
+
end
|
15
|
+
|
16
|
+
install_if -> { ENV["DB_ADAPTER"] == "oracle_enhanced" } do
|
17
|
+
gem "activerecord-oracle_enhanced-adapter", "~> 7.0.0"
|
18
|
+
gem "ruby-oci8"
|
19
|
+
end
|
20
|
+
|
21
|
+
gemspec path: "../"
|
@@ -3,7 +3,27 @@
|
|
3
3
|
module AjaxDatatablesRails
|
4
4
|
class Base
|
5
5
|
|
6
|
-
|
6
|
+
class << self
|
7
|
+
def rails_52?
|
8
|
+
Rails.gem_version >= Gem::Version.new('5.2') && Rails.gem_version <= Gem::Version.new('6.0')
|
9
|
+
end
|
10
|
+
|
11
|
+
def rails_60?
|
12
|
+
Rails.gem_version >= Gem::Version.new('6.0') && Rails.gem_version <= Gem::Version.new('6.1')
|
13
|
+
end
|
14
|
+
|
15
|
+
def default_db_adapter
|
16
|
+
if rails_52?
|
17
|
+
::ActiveRecord::Base.configurations.dig(Rails.env, 'adapter').downcase.to_sym
|
18
|
+
elsif rails_60?
|
19
|
+
::ActiveRecord::Base.configurations.configs_for(env_name: Rails.env).first.config['adapter'].downcase.to_sym
|
20
|
+
else
|
21
|
+
::ActiveRecord::Base.configurations.configs_for(env_name: Rails.env).first.adapter.downcase.to_sym
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
class_attribute :db_adapter, default: default_db_adapter
|
7
27
|
class_attribute :nulls_last, default: false
|
8
28
|
|
9
29
|
attr_reader :params, :options, :datatable
|
@@ -62,11 +62,11 @@ module AjaxDatatablesRails
|
|
62
62
|
when :eq, :not_eq, :lt, :gt, :lteq, :gteq, :in
|
63
63
|
searchable_integer? ? raw_search(cond) : empty_search
|
64
64
|
when :start_with
|
65
|
-
|
65
|
+
text_search("#{formatted_value}%")
|
66
66
|
when :end_with
|
67
|
-
|
67
|
+
text_search("%#{formatted_value}")
|
68
68
|
when :like
|
69
|
-
|
69
|
+
text_search("%#{formatted_value}%")
|
70
70
|
when :string_eq
|
71
71
|
raw_search(:eq)
|
72
72
|
when :string_in
|
@@ -88,11 +88,11 @@ module AjaxDatatablesRails
|
|
88
88
|
end
|
89
89
|
|
90
90
|
def raw_search(cond)
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
91
|
+
table[field].send(cond, formatted_value) unless custom_field?
|
92
|
+
end
|
93
|
+
|
94
|
+
def text_search(value)
|
95
|
+
casted_column.matches(value) unless custom_field?
|
96
96
|
end
|
97
97
|
|
98
98
|
def empty_search
|