effective_datatables 1.7.0 → 1.7.1

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
  SHA1:
3
- metadata.gz: 2886ccb27eabcc82b302f81df10e2e4cc8df6382
4
- data.tar.gz: d7dafdae76d0e065bf81dec0466abf23c3a1df13
3
+ metadata.gz: e33500ce573ca5338516e3e79dfb3c06c44dc81d
4
+ data.tar.gz: 6aa75a77d9bf1151deb0cfc71935086f2cb75fdd
5
5
  SHA512:
6
- metadata.gz: 785d2e6b32533c2f2157858acefef240165e7619837e68b50cbc7b31a21f92a9fa992201a01e3aa957c0d4f4babd795e2e0a7a0c676ad4505de86c7986df7f3f
7
- data.tar.gz: 51e9a8df9494af9138a7c6fb3a2dd158c8ce9e659cbb347ebf9944ce8096267e163bf4853bf26af8a4a9bdae6e5ff41823971b5271faa31a09851b4ae1adbe7a
6
+ metadata.gz: 9de12751ecd5de42f4404d52e90ff3666e1ecff389d8f6acc2e3c108a8e4493a923a9025ce192c0e86e99f72e75cbf68180b06d76fbeef925e901f336aa3838a
7
+ data.tar.gz: 41f47e6044204bc970b0660b7a583d5a46e17ac9725465ef763ffbe711c1580f108d24d509812c774836527f4bf8c03acb99a65502af6fb50fa5e0403a5f648d
@@ -68,17 +68,16 @@ module Effective
68
68
  end
69
69
  end
70
70
 
71
-
72
71
  def initialize(*args)
73
- unless active_record_collection? || (collection.kind_of?(Array) && collection.first.kind_of?(Array))
74
- raise "Unsupported collection type. Should be ActiveRecord class, ActiveRecord relation, or an Array of Arrays [[1, 'something'], [2, 'something else']]"
75
- end
76
-
77
72
  if args.present?
78
73
  raise 'Effective::Datatable.new() can only be called with a Hash like arguments' unless args.first.kind_of?(Hash)
79
74
  args.first.each { |k, v| self.attributes[k] = v }
80
75
  end
81
76
 
77
+ unless active_record_collection? || (collection.kind_of?(Array) && collection.first.kind_of?(Array))
78
+ raise "Unsupported collection type. Should be ActiveRecord class, ActiveRecord relation, or an Array of Arrays [[1, 'something'], [2, 'something else']]"
79
+ end
80
+
82
81
  # Any pre-selected search terms should be assigned now
83
82
  search_terms.each { |column, term| self.send("#{column}=", term) }
84
83
  end
@@ -235,7 +234,11 @@ module Effective
235
234
 
236
235
  def total_records
237
236
  @total_records ||= (
238
- if active_record_collection?
237
+ if active_record_collection? && collection_class.connection.respond_to?(:unprepared_statement)
238
+ # https://github.com/rails/rails/issues/15331
239
+ collection_sql = collection_class.connection.unprepared_statement { collection.to_sql }
240
+ (collection_class.connection.execute("SELECT COUNT(*) FROM (#{collection_sql}) AS datatables_total_count").first['count'] rescue 1).to_i
241
+ elsif active_record_collection?
239
242
  (collection_class.connection.execute("SELECT COUNT(*) FROM (#{collection.to_sql}) AS datatables_total_count").first['count'] rescue 1).to_i
240
243
  else
241
244
  collection.size
@@ -278,7 +281,13 @@ module Effective
278
281
  col = table_tool.search(col)
279
282
 
280
283
  if table_tool.search_terms.present? && array_tool.search_terms.blank?
281
- self.display_records = (collection_class.connection.execute("SELECT COUNT(*) FROM (#{col.to_sql}) AS datatables_filtered_count").first['count'] rescue 1).to_i
284
+ if collection_class.connection.respond_to?(:unprepared_statement)
285
+ # https://github.com/rails/rails/issues/15331
286
+ col_sql = collection_class.connection.unprepared_statement { col.to_sql }
287
+ self.display_records = (collection_class.connection.execute("SELECT COUNT(*) FROM (#{col_sql}) AS datatables_filtered_count").first['count'] rescue 1).to_i
288
+ else
289
+ self.display_records = (collection_class.connection.execute("SELECT COUNT(*) FROM (#{col.to_sql}) AS datatables_filtered_count").first['count'] rescue 1).to_i
290
+ end
282
291
  end
283
292
  end
284
293
 
@@ -1,3 +1,3 @@
1
1
  module EffectiveDatatables
2
- VERSION = '1.7.0'.freeze
2
+ VERSION = '1.7.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_datatables
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.0
4
+ version: 1.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-16 00:00:00.000000000 Z
11
+ date: 2015-06-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails