7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# File 'lib/ransacker_translator/models/concerns/ransacker_translator.rb', line 7
def ransacker_translate(*columns)
columns.each do |column|
ransacker :"#{column}_translate", formatter: proc {|v| NKF.nkf('-w -XZ0', v.mb_chars) } do |parent|
single_byte_char = '-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz !#$%&¥;:'
double_byte_char = '-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz !#$%&¥;:'
Arel::Nodes::NamedFunction.new("UPPER",
[Arel::Nodes::NamedFunction.new("TRANSLATE",
[parent.table[column],
double_byte_char,
single_byte_char].map { |it| Arel::Nodes.build_quoted(it) })
])
end
end
end
|