effective_datatables 1.0.1 → 1.0.2

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: 86c4a4ce9bbbe51c5b6a37624ab041e0150130a7
4
- data.tar.gz: 5601231c343b39b14aeb87b5e5e04c7086f26c4d
3
+ metadata.gz: c823dd7f44e5191f730076d3fec30747fa5332b8
4
+ data.tar.gz: 30ac156546c0fcd154abc0e3e144fe5a8ea7ab75
5
5
  SHA512:
6
- metadata.gz: c4a50e770e239cbef09f544414d4f18a78471140e456309536672e61e40e192de1c2e5ad25d7e98ae9d4fc8e1964c4c3e3a8649e639fb8cb4442b14eb87bd65e
7
- data.tar.gz: 8edc669655778534cddfc4e74e31811740759574d0f0597b2e2b033211084014a397340e14a9b48177f499c02009538658d4c883ccb7682ac65f5b9ff30857ea
6
+ metadata.gz: acb37922961188b750bf9b69f77fde79b06571b67274dcb76a6918d0a927020cc897a2e353898dfd12199c6f09b911bd79027add70f2e42c7971e1037a44e698
7
+ data.tar.gz: 8a2f0c023604461e9a03ea95f65bc6016efa786e012c58767085fa732152bcd0be4aa16d750eb2c954d552502c9b032113bb45b3ceda5dce36b0750068d32540
@@ -70,6 +70,12 @@ module Effective
70
70
  rescue => e
71
71
  collection
72
72
  end
73
+ when :obfuscated_id
74
+ if (deobfuscated_id = collection.deobfuscate(term)) == term # We weren't able to deobfuscate it, so this is an Invalid ID
75
+ collection.where("#{column} = :term", :term => 0)
76
+ else
77
+ collection.where("#{column} = :term", :term => deobfuscated_id)
78
+ end
73
79
  when :integer
74
80
  collection.where("#{column} = :term", :term => term.to_i)
75
81
  when :year
@@ -228,6 +228,8 @@ module Effective
228
228
  view.instance_exec(obj, collection, self, &opts[:proc])
229
229
  elsif opts[:type] == :belongs_to
230
230
  val = (obj.send(name) rescue nil).to_s
231
+ elsif opts[:type] == :obfuscated_id
232
+ (obj.send(:to_param) rescue nil).to_s
231
233
  else
232
234
  val = (obj.send(name) rescue nil)
233
235
  val = (obj[opts[:array_index]] rescue nil) if val == nil
@@ -310,9 +312,19 @@ module Effective
310
312
  cols[name][:name] ||= name
311
313
  cols[name][:label] ||= name.titleize
312
314
  cols[name][:column] ||= (sql_table && sql_column) ? "\"#{sql_table.name}\".\"#{sql_column.name}\"" : name
313
- cols[name][:type] ||= (belong_tos.key?(name) ? :belongs_to : sql_column.try(:type)).presence || :string
314
315
  cols[name][:width] ||= nil
315
316
  cols[name][:sortable] = true if cols[name][:sortable] == nil
317
+
318
+ cols[name][:type] ||= (
319
+ if belong_tos.key?(name)
320
+ :belongs_to
321
+ elsif name == 'id' && collection.respond_to?(:deobfuscate)
322
+ :obfuscated_id
323
+ else
324
+ sql_column.try(:type).presence || :string
325
+ end
326
+ )
327
+
316
328
  cols[name][:filter] = initialize_table_column_filter(cols[name][:filter], cols[name][:type], belong_tos[name])
317
329
 
318
330
  if cols[name][:partial]
@@ -1,3 +1,3 @@
1
1
  module EffectiveDatatables
2
- VERSION = '1.0.1'.freeze
2
+ VERSION = '1.0.2'.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.0.1
4
+ version: 1.0.2
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: 2014-12-24 00:00:00.000000000 Z
11
+ date: 2014-12-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -172,7 +172,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
172
172
  version: '0'
173
173
  requirements: []
174
174
  rubyforge_project:
175
- rubygems_version: 2.2.0
175
+ rubygems_version: 2.4.3
176
176
  signing_key:
177
177
  specification_version: 4
178
178
  summary: Uniquely powerful server-side searching, sorting and filtering of any ActiveRecord