Sha256: 2838be39ac62d7360d014bdd9a92838f2f60c614f50cd6e4b8f97e00c27f9cca
Contents?: true
Size: 1.38 KB
Versions: 3
Compression:
Stored size: 1.38 KB
Contents
class UserFilter < WillFilter::Filter def definition defs = super defs[:sex][:is] = :list defs[:sex][:is_not] = :list defs end def value_options_for(criteria_key) if criteria_key == :sex return ["male", "female"] end return [] end def default_filters [ ["Male Only", "male_only"], ["Females With Last Name 'Adams'", "adams"], ["First Names Start With 'A'", "first_names_start_with_a"], ["Last Names Containing 'son'", "last_names_containing_son"], ["Susans Born Between 2000 and 2010", "susans"], ] end def default_filter_conditions(key) return [:sex, :is, "male"] if (key == "male_only") return [[:sex, :is, "female"],[:last_name, :is, "Adams"]] if (key == "adams") return [:first_name, :starts_with, "A"] if (key == "first_names_start_with_a") return [:last_name, :contains, "son"] if (key == "last_names_containing_son") if (key == "susans") return [[:first_name, :is, "Susan"], [:birthday, :is_in_the_range, [Date.new(2000,1,1), Date.new(2010,1,1)]]] end end def order_clause if key == "first_names_start_with_a" @order = 'first_name' @order_type = 'asc' end if key == "last_names_containing_son" @order = 'last_name' @order_type = 'asc' end super end def default_filter_if_empty "male_only" end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
will_filter-3.1.3 | test/dummy/app/models/user_filter.rb |
will_filter-3.1.2 | test/dummy/app/models/user_filter.rb |
will_filter-3.1.1 | test/dummy/app/models/user_filter.rb |