def filter_records(records)
      records = records.uniq           if unique?
      records = match_records(records) if conditions
      records = sort_records(records)  if order
      records = limit_records(records) if limit || offset > 0
      records
    end
def filter_records(records)
      records = records.uniq           if unique?
      records = match_records(records) if conditions
      records = sort_records(records)  if order
      records = limit_records(records) if limit || offset > 0
      records
    end
Takes an Enumerable of records, and destructively filters it.
 First finds all matching conditions, then sorts it,
 then does offset & limit

 @param [Enumerable] records
   The set of records to be filtered

 @return [Enumerable]
   Whats left of the given array after the filtering

 @api semipublic