Class: WillFilter::Containers::TextDelimited

Inherits:
FilterContainer show all
Defined in:
lib/will_filter/containers/text_delimited.rb

Constant Summary collapse

TEXT_DELIMITER =
","

Instance Attribute Summary

Attributes inherited from FilterContainer

#condition, #filter, #index, #operator, #values

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from FilterContainer

#date, #initialize, #is_floating_point?, #is_numeric?, #options, #reset_values, #sanitized_value, #serialize_to_params, #time, #value

Constructor Details

This class inherits a constructor from WillFilter::FilterContainer

Class Method Details

.operatorsObject



38
39
40
# File 'lib/will_filter/containers/text_delimited.rb', line 38

def self.operators
  [:is_in, :is_not_in]
end

Instance Method Details

#split_valuesObject



50
51
52
# File 'lib/will_filter/containers/text_delimited.rb', line 50

def split_values
  value.split(TEXT_DELIMITER)
end

#sql_conditionObject



54
55
56
57
58
# File 'lib/will_filter/containers/text_delimited.rb', line 54

def sql_condition
  sanitized_values = split_values.collect {|val| val.to_s.downcase}
  return [" lower(#{condition.full_key}) in (?) ", sanitized_values] if operator == :is_in
  return [" lower(#{condition.full_key}) not in (?) ", sanitized_values] if operator == :is_not_in
end

#template_nameObject



42
43
44
# File 'lib/will_filter/containers/text_delimited.rb', line 42

def template_name
  'text'
end

#validateObject



46
47
48
# File 'lib/will_filter/containers/text_delimited.rb', line 46

def validate
  return "Values must be provided. Separate values with '#{TEXT_DELIMITER}'" if value.blank?
end