Don't use send to call methods on objects
Return a new list when filtering

* I noticed that you are sorting your list in place, which
  seems odd to me. You often want to avoid side effects when
  writing methods because it can cause unexpected behavior.
  What I did was return a new List object with the sorted
  elements.
* If you really want to sort in place, you should add a mutator
  to the method name, often "!". So you could use filter_by!.