Class: ActiveRecord::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/relata/filter.rb

Class Method Summary collapse

Class Method Details

.date_between(params) ⇒ Object



57
58
59
60
61
# File 'lib/relata/filter.rb', line 57

def self.date_between(params) 
  relation = scoped 
  relation = send("filter_by_date_between", params, relation) 
  relation
end

.filtered_relation(params) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/relata/filter.rb', line 28

def self.filtered_relation(params) 
  relation = scoped 

  columns = self.columns.map do |c|
     c.name if [:string, :text].include? c.type
  end  
              
  params.each do |facet, value| 
    if self.reflect_on_association facet.to_sym
      relation = send("filter_by_has_many", facet, value, relation)           
    elsif columns.include? facet.to_s
      relation = send("filter_by_exact", facet, value, relation)
    else    
      relation = send("filter_by_#{facet}", value, relation)         
    end
  end

  relation
end


48
49
50
51
52
53
54
55
# File 'lib/relata/filter.rb', line 48

def self.related_to(params) 
  relation = scoped 

  params.each do |facet, value| 
    relation = send("filter_by_related", facet, value, relation) 
  end
  relation
end