Put more-abstract methods above less-abstract ones
Spell out variable names

Remove unnecessary parentheses in `if` statement.
Clarify where values are coming from
Use more-idiomatic Ruby

* Use an Enumerable method that returns a boolean instead of `.index`
* Use a question mark for values that return true/false
* Use `if condition` instead of `unless condition`
* Use `reject` instead of `delete_if` to avoid mutation. Mutation would actually be fine
  here, but it's nice to avoid it, and `delete_if` is used rarely in Ruby.