3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# File 'lib/ransack_active_record_enhancer/enhanced_where.rb', line 3
def self.included(klass)
klass.class_eval do
class << self
define_method RansackActiveRecordEnhancer.enhanced_where_method_name do |opts = :chain, *rest|
return super(opts, *rest) unless opts.is_a?(Hash)
options = opts.collect do |key, value|
predicate = value.is_a?(Array) ? :in : :eq
key = "#{key}_#{predicate}" unless RANSACK_PREDICATES.include?(key.to_s.split('_').last)
{ key.to_sym => value }
end.reduce(:merge)
ransack(options).result
end
end
end
end
|