* This line is super long, particularly for having a trailing `if`.  I'd prefer to see the non-trailing if for a case like this.
* Rather than including handling for both 1.8 and 1.9 in a single line, I'd prefer to see something like:

``` ruby
if methods.first.is_a?(String)
  def private_method_on?(object)
    object.private_methods.include?(predicate.to_s)
  end
else
  def private_method_on?(object)
    object.private_methods.include?(predicate.to_sym)
  end
end
```