One of the hardest things I find myself doing (being a newbie to rails)
is getting back into the long frame of mind with other languages I
program in.
Take for instance this method:
def self.do_sort(sort_by, search, page)
start_date = Time.now.beginning_of_week
end_date = Time.now.end_of_week
if (sort_by != “all”) then
paginate :per_page => 20, :page => page,
:conditions => [‘compiled_on > ? and compiled_on < ?’,
start_date, end_date],
:conditions => [‘name like ?’, “%#{search}%”],
:order => ‘rank’
else
paginate :per_page => 120, :page => page,
:conditions => [‘compiled_on > ? and compiled_on < ?’,
start_date, end_date],
:conditions => [‘name like ?’, “%#{search}%”],
:order => ‘rank’
end
end
It works fine but again, it doesn’t appear DRY because the conditions
match for both sides of the equation. The only things I’m changing are
the page parameters.
How do I make this dry and pretty?