@@ -4,29 +4,12 @@ module AjaxDatatablesRails
44 module Datatable
55 class Column
66
7- TYPE_CAST_DEFAULT = 'VARCHAR'
8- TYPE_CAST_MYSQL = 'CHAR'
9- TYPE_CAST_SQLITE = 'TEXT'
10- TYPE_CAST_ORACLE = 'VARCHAR2(4000)'
11- TYPE_CAST_SQLSERVER = 'VARCHAR(4000)'
12-
13- DB_ADAPTER_TYPE_CAST = {
14- mysql : TYPE_CAST_MYSQL ,
15- mysql2 : TYPE_CAST_MYSQL ,
16- sqlite : TYPE_CAST_SQLITE ,
17- sqlite3 : TYPE_CAST_SQLITE ,
18- oracle : TYPE_CAST_ORACLE ,
19- oracleenhanced : TYPE_CAST_ORACLE ,
20- sqlserver : TYPE_CAST_SQLSERVER ,
21- } . freeze
22-
23- attr_reader :datatable , :index , :options
24- attr_writer :search
25-
267 include Search
278 include Order
289 include DateFilter
2910
11+ attr_reader :datatable , :index , :options
12+ attr_writer :search
3013
3114 def initialize ( datatable , index , options )
3215 @datatable = datatable
@@ -71,6 +54,29 @@ def formatted_value
7154
7255 private
7356
57+ TYPE_CAST_DEFAULT = 'VARCHAR'
58+ TYPE_CAST_MYSQL = 'CHAR'
59+ TYPE_CAST_SQLITE = 'TEXT'
60+ TYPE_CAST_ORACLE = 'VARCHAR2(4000)'
61+ TYPE_CAST_SQLSERVER = 'VARCHAR(4000)'
62+
63+ DB_ADAPTER_TYPE_CAST = {
64+ mysql : TYPE_CAST_MYSQL ,
65+ mysql2 : TYPE_CAST_MYSQL ,
66+ sqlite : TYPE_CAST_SQLITE ,
67+ sqlite3 : TYPE_CAST_SQLITE ,
68+ oracle : TYPE_CAST_ORACLE ,
69+ oracleenhanced : TYPE_CAST_ORACLE ,
70+ sqlserver : TYPE_CAST_SQLSERVER ,
71+ } . freeze
72+
73+ private_constant :TYPE_CAST_DEFAULT
74+ private_constant :TYPE_CAST_MYSQL
75+ private_constant :TYPE_CAST_SQLITE
76+ private_constant :TYPE_CAST_ORACLE
77+ private_constant :TYPE_CAST_SQLSERVER
78+ private_constant :DB_ADAPTER_TYPE_CAST
79+
7480 def type_cast
7581 @type_cast ||= DB_ADAPTER_TYPE_CAST . fetch ( datatable . db_adapter , TYPE_CAST_DEFAULT )
7682 end
0 commit comments