rubygems/rubygems — pull request #1094 by tenderlove (2014-12-05 23:25:16+00:00)
Title: Clean up the PathSupport object

This pull request cleans up the PathSupport object. It's technically not backwards compatible, but I think the change is extremely low risk.

### Required parameter to PathSupport constructor

First, I changed the constructor to require that something be passed in. We'll usually pass `ENV` in, though we pass other stuff in the test cases.

### Stop using `ENV` in the object

Now that the constructor requires you to pass something in, I've removed references to `ENV` from inside the object. It **was** pulling stuff from `ENV` if it couldn't find the info from `env`. It was essentially doing a hash merge manually. Since it now requires you to pass the env in, the caller is responsible for merging the hash. I think this simplifies the implementation and should be less surprising from the user's side, but it is technically not backwards compatible

### Assume `ENV` values are always strings

The object had code to support `ENV` values that are arrays. But `ENV` values will never be arrays unless someone mutates the `ENV` hash and specifically inserts arrays. I don't think that's something we should support.