Class: WillFilter::Containers::List

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

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?, #reset_values, #sanitized_value, #serialize_to_params, #template_name, #time, #validate, #value

Constructor Details

This class inherits a constructor from WillFilter::FilterContainer

Class Method Details

.operatorsObject



36
37
38
# File 'lib/will_filter/containers/list.rb', line 36

def self.operators
  [:is, :is_not, :contains, :does_not_contain]
end

Instance Method Details

#optionsObject



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/will_filter/containers/list.rb', line 40

def options
  opts = []
  filter.value_options_for(condition.key).each do |item|
    if item.is_a?(Array)
      opt_name = item.first.to_s
      opt_value = item.last.to_s
    else
      opt_name = item.to_s
      opt_value = item.to_s
    end
    next if opt_name.strip == ""
    opts << [ERB::Util.html_escape(opt_name), ERB::Util.html_escape(opt_value)]
  end
  opts
end

#sql_conditionObject



56
57
58
59
60
61
62
# File 'lib/will_filter/containers/list.rb', line 56

def sql_condition
  sanitized_value = value.to_s.downcase
  return [" #{condition.full_key} = ? ", sanitized_value] if operator == :is
  return [" #{condition.full_key} <> ? ", sanitized_value] if operator == :is_not
  return [" lower(#{condition.full_key}) like ? ", "%#{sanitized_value}%"] if operator == :contains
  return [" lower(#{condition.full_key}) not like ? ", "%#{sanitized_value}%"] if operator == :does_not_cotain
end