Module: HasFilter::ClassMethods

Defined in:
lib/has_filter.rb

Instance Method Summary collapse

Instance Method Details

#filter(filtering = nil) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/has_filter.rb', line 13

def filter(filtering = nil)
  return [] unless filtering
  conditions = filtering
  filters = []

  conditions = conditions.select { |k, v| self.column_names.include? k.to_s }

  if @_filters.present?
    conditions = conditions.select { |key| @_filters.include? key }
  end

  if conditions.empty?
    filters << _hash_conditions(:id, nil)
  else
    filters << _set_filters(conditions)
  end

  filters = filters.flatten
  find(:all, :conditions => filters)
end

#has_filter(allowed_fields = nil) ⇒ Object



9
10
11
# File 'lib/has_filter.rb', line 9

def has_filter(allowed_fields = nil)
  @_filters = *allowed_fields
end