Module: Pacecar::Associations::ClassMethods

Defined in:
lib/pacecar/associations.rb

Instance Method Summary collapse

Instance Method Details

#has_recent_records(*names) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/pacecar/associations.rb', line 9

def has_recent_records(*names)
  names.each do |name|
    scope "recent_#{name}_since".to_sym, lambda { |since|
      {
        :conditions => [conditions_for_name(name), { :since_time => since }]
      }
    }
  end
  unless names.first == names.last
    scope "recent_#{names.join('_or_')}_since".to_sym, lambda { |since|
      {
        :conditions => [names.collect { |name| conditions_for_name(name) }.join(' or '), { :since_time => since }]
      }
    }
    scope "recent_#{names.join('_and_')}_since".to_sym, lambda { |since|
      {
        :conditions => [names.collect { |name| conditions_for_name(name) }.join(' and '), { :since_time => since }]
      }
    }
  end
end