Skip to content

Commit b27e0d5

Browse files
authored
Merge pull request #417 from pareeohnos/feature/support-postgis-adapter
Add support for postgis adapter
2 parents 714a6c7 + 518b016 commit b27e0d5

File tree

8 files changed

+36
-2
lines changed

8 files changed

+36
-2
lines changed

appraisal.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@
1212
ruby-oci8:
1313
version: ''
1414
install_if: '-> { ENV["DB_ADAPTER"] == "oracle_enhanced" }'
15+
activerecord-postgis-adapter:
16+
version: ''
17+
install_if: '-> { ENV["DB_ADAPTER"] == "postgis" }'
1518

1619
6.1.7:
1720
sqlite3:
@@ -26,6 +29,9 @@
2629
ruby-oci8:
2730
version: ''
2831
install_if: '-> { ENV["DB_ADAPTER"] == "oracle_enhanced" }'
32+
activerecord-postgis-adapter:
33+
version: ''
34+
install_if: '-> { ENV["DB_ADAPTER"] == "postgis" }'
2935

3036
7.0.4:
3137
sqlite3:
@@ -40,3 +46,6 @@
4046
ruby-oci8:
4147
version: ''
4248
install_if: '-> { ENV["DB_ADAPTER"] == "oracle_enhanced" }'
49+
activerecord-postgis-adapter:
50+
version: ''
51+
install_if: '-> { ENV["DB_ADAPTER"] == "postgis" }'

gemfiles/rails_6.0.6.gemfile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,8 @@ install_if -> { ENV["DB_ADAPTER"] == "oracle_enhanced" } do
1818
gem "ruby-oci8"
1919
end
2020

21+
install_if -> { ENV["DB_ADAPTER"] == "postgis" } do
22+
gem "activerecord-postgis-adapter"
23+
end
24+
2125
gemspec path: "../"

gemfiles/rails_6.1.7.gemfile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,8 @@ install_if -> { ENV["DB_ADAPTER"] == "oracle_enhanced" } do
1818
gem "ruby-oci8"
1919
end
2020

21+
install_if -> { ENV["DB_ADAPTER"] == "postgis" } do
22+
gem "activerecord-postgis-adapter"
23+
end
24+
2125
gemspec path: "../"

gemfiles/rails_7.0.4.gemfile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,8 @@ install_if -> { ENV["DB_ADAPTER"] == "oracle_enhanced" } do
1818
gem "ruby-oci8"
1919
end
2020

21+
install_if -> { ENV["DB_ADAPTER"] == "postgis" } do
22+
gem "activerecord-postgis-adapter"
23+
end
24+
2125
gemspec path: "../"

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ def nulls_last_sql
4545
return unless sort_nulls_last?
4646

4747
case @adapter
48-
when :pg, :postgresql, :postgres, :oracle
48+
when :pg, :postgresql, :postgres, :oracle, :postgis
4949
'NULLS LAST'
5050
when :mysql, :mysql2, :sqlite, :sqlite3
5151
'IS NULL'

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,11 @@
168168
expect(column.send(:type_cast)).to eq('VARCHAR')
169169
end
170170

171+
it 'returns VARCHAR if :db_adapter is :postgis' do
172+
expect(datatable).to receive(:db_adapter) { :postgis }
173+
expect(column.send(:type_cast)).to eq('VARCHAR')
174+
end
175+
171176
it 'returns VARCHAR2(4000) if :db_adapter is :oracle' do
172177
expect(datatable).to receive(:db_adapter) { :oracle }
173178
expect(column.send(:type_cast)).to eq('VARCHAR2(4000)')

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,14 @@
4242
end
4343
end
4444

45+
context 'with postgis database adapter' do
46+
before { parent.db_adapter = :postgis }
47+
48+
it 'sql query' do
49+
expect(nulls_last_order.query('email')).to eq('email DESC NULLS LAST')
50+
end
51+
end
52+
4553
context 'with sqlite database adapter' do
4654
before { parent.db_adapter = :sqlite }
4755

spec/support/helpers/params.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ def sample_params_json
7070

7171
def nulls_last_sql(datatable)
7272
case datatable.db_adapter
73-
when :pg, :postgresql, :postgres, :oracle
73+
when :pg, :postgresql, :postgres, :oracle, :postgis
7474
'NULLS LAST'
7575
when :mysql, :mysql2, :sqlite, :sqlite3
7676
'IS NULL'

0 commit comments

Comments
 (0)