8000 Merge pull request #423 from mrudult/trilogy · jbox-web/ajax-datatables-rails@50128ec · GitHub
[go: up one dir, main page]

Skip to content

Commit 50128ec

Browse files
authored
Merge pull request #423 from mrudult/trilogy
Add support for trilogy adapter for MySQL #422
2 parents 8206409 + 78a6760 commit 50128ec

File tree

13 files changed

+54
-4
lines changed

13 files changed

+54
-4
lines changed

.github/workflows/ci.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ jobs:
6666
- sqlite3
6767
- postgresql
6868
- mysql2
69+
- trilogy
6970
- oracle_enhanced
7071

7172
steps:
@@ -85,7 +86,7 @@ jobs:
8586

8687
# See: https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-README.md#mysql
8788
run: |
88-
if [ "${DB_ADAPTER}" = "mysql2" ]; then
89+
if [ "${DB_ADAPTER}" = "mysql2" ] || [ "${DB_ADAPTER}" = "trilogy" ]; then
8990
sudo systemctl start mysql.service
9091
mysql -u root -proot -e 'create database ajax_datatables_rails;'
9192
fi

appraisal.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
mysql2:
77
version: ''
88
install_if: '-> { ENV["DB_ADAPTER"] == "mysql2" }'
9+
activerecord-trilogy-adapter:
10+
version: ''
11+
install_if: '-> { ENV["DB_ADAPTER"] == "trilogy" }'
912
activerecord-oracle_enhanced-adapter:
1013
version: ~> 6.0.0
1114
install_if: '-> { ENV["DB_ADAPTER"] == "oracle_enhanced" }'
@@ -23,6 +26,9 @@
2326
mysql2:
2427
version: ''
2528
install_if: '-> { ENV["DB_ADAPTER"] == "mysql2" }'
29+
activerecord-trilogy-adapter:
30+
version: ''
31+
install_if: '-> { ENV["DB_ADAPTER"] == "trilogy" }'
2632
activerecord-oracle_enhanced-adapter:
2733
version: ~> 6.1.0
2834
install_if: '-> { ENV["DB_ADAPTER"] == "oracle_enhanced" }'
@@ -40,6 +46,9 @@
4046
mysql2:
4147
version: ''
4248
install_if: '-> { ENV["DB_ADAPTER"] == "mysql2" }'
49+
activerecord-trilogy-adapter:
50+
version: ''
51+
install_if: '-> { ENV["DB_ADAPTER"] == "trilogy" }'
4352
activerecord-oracle_enhanced-adapter:
4453
version: ~> 7.0.0
4554
install_if: '-> { ENV["DB_ADAPTER"] == "oracle_enhanced" }'
@@ -57,6 +66,9 @@
5766
mysql2:
5867
version: ''
5968
install_if: '-> { ENV["DB_ADAPTER"] == "mysql2" }'
69+
activerecord-trilogy-adapter:
70+
version: ''
71+
install_if: '-> { ENV["DB_ADAPTER"] == "trilogy" }'
6072
# activerecord-oracle_enhanced-adapter:
6173
# version: ~> 7.0.0
6274
# install_if: '-> { ENV["DB_ADAPTER"] == "oracle_enhanced" }'

gemfiles/rails_6.0.6.gemfile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ install_if -> { ENV["DB_ADAPTER"] == "mysql2" } do
1313
gem "mysql2"
1414
end
1515

16+
install_if -> { ENV["DB_ADAPTER"] == "trilogy" } do
17+
gem "activerecord-trilogy-adapter"
18+
end
19+
1620
install_if -> { ENV["DB_ADAPTER"] == "oracle_enhanced" } do
1721
gem "activerecord-oracle_enhanced-adapter", "~> 6.0.0"
1822
gem "ruby-oci8"

gemfiles/rails_6.1.7.gemfile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ install_if -> { ENV["DB_ADAPTER"] == "mysql2" } do
1313
gem "mysql2"
1414
end
1515

16+
install_if -> { ENV["DB_ADAPTER"] == "trilogy" } do
17+
gem "activerecord-trilogy-adapter"
18+
end
19+
1620
install_if -> { ENV["DB_ADAPTER"] == "oracle_enhanced" } do
1721
gem "activerecord-oracle_enhanced-adapter", "~> 6.1.0"
1822
gem "ruby-oci8"

gemfiles/rails_7.0.8.gemfile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ install_if -> { ENV["DB_ADAPTER"] == "mysql2" } do
1313
gem "mysql2"
1414
end
1515

16+
install_if -> { ENV["DB_ADAPTER"] == "trilogy" } do
17+
gem "activerecord-trilogy-adapter"
18+
end
19+
1620
install_if -> { ENV["DB_ADAPTER"] == "oracle_enhanced" } do
1721
gem "activerecord-oracle_enhanced-adapter", "~> 7.0.0"
1822
gem "ruby-oci8"

gemfiles/rails_7.1.0.gemfile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ install_if -> { ENV["DB_ADAPTER"] == "mysql2" } do
1313
gem "mysql2"
1414
end
1515

16+
install_if -> { ENV["DB_ADAPTER"] == "trilogy" } do
17+
gem "activerecord-trilogy-adapter"
18+
end
19+
1620
install_if -> { ENV["DB_ADAPTER"] == "postgis" } do
1721
gem "activerecord-postgis-adapter"
1822
end

lib/ajax-datatables-rails/datatable/column.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ def formatted_value
6868
DB_ADAPTER_TYPE_CAST = {
6969
mysql: TYPE_CAST_MYSQL,
7070
mysql2: TYPE_CAST_MYSQL,
71+
trilogy: TYPE_CAST_MYSQL,
7172
sqlite: TYPE_CAST_SQLITE,
7273
sqlite3: TYPE_CAST_SQLITE,
7374
oracle: TYPE_CAST_ORACLE,

lib/ajax-datatables-rails/datatable/simple_order.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ def nulls_last_sql
4747
case @adapter
4848
when :pg, :postgresql, :postgres, :oracle, :postgis
4949
'NULLS LAST'
50-
when :mysql, :mysql2, :sqlite, :sqlite3
50+
when :mysql, :mysql2, :trilogy, :sqlite, :sqlite3
5151
'IS NULL'
5252
else
5353
raise "unsupported database adapter: #{@adapter}"

spec/ajax-datatables-rails/datatable/column_spec.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,11 @@
188188
expect(column.send(:type_cast)).to eq('CHAR')
189189
end
190190

191+
it 'returns CHAR if :db_adapter is :trilogy' do
192+
expect(datatable).to receive(:db_adapter) { :trilogy }
193+
expect(column.send(:type_cast)).to eq('CHAR')
194+
end
195+
191196
it 'returns CHAR if :db_adapter is :mysql' do
192197
expect(datatable).to receive(:db_adapter) { :mysql }
193198
expect(column.send(:type_cast)).to eq('CHAR')

spec/ajax-datatables-rails/orm/active_record_filter_records_spec.rb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,16 @@
202202
)
203203
end
204204
end
205+
206+
context 'when db_adapter is trilogy' do
207+
it 'can call #to_sql on returned object' do
208+
result = datatable.build_conditions_for_selected_columns
209+
expect(result).to respond_to(:to_sql)
210+
expect(result.to_sql).to eq(
211+
"CAST(`users`.`username` AS CHAR) LIKE '%doe%' AND CAST(`users`.`email` AS CHAR) LIKE '%example%'"
212+
)
213+
end
214+
end
205215
end
206216
end
207217

0 commit comments

Comments
 (0)
0