Ignore PEM files in the ssl_certs directory
Updated Manifest.txt
Merge pull request #427 from jeremyevans/master

Ensure Gem.refresh keeps already loaded gems activated

This prevents double-loads of gems that were previously activated.
Updated History for #427
Bumped version
Add workaround for .time dependency by mkmf.rb introduced since Ruby 2.0.0

GitHub: fix #411

Ruby: fix [Bug #7698] [ruby-core:51437]

mkmf.rb on Ruby 2.0.0 introduces .time dependency to support "make -j".
See Ruby's [Bug #6904]: https://bugs.ruby-lang.org/issues/6904

With this change, installing *.rb tasks are always ran even if source
rb and destination rb are the same file. RubyGems uses the same
directory for source directory and install directory. So this behavior
causes a RubyGems problem. GNU install reports an error for the same
source and destination file. BSD install also reports an error for it
but doesn't report any error by specifying destination as directory.
Makefile generated by mkmf.rb uses destination directory not
destination file.

Prepare:

  % cd /tmp
  % touch x

GNU install (Debian GNU/Linux):

  % install x x
  install: 'x' and 'x' are the same file
  % install x ./
  install: 'x' and './x' are the same file

BSD install (FreeBSD):

  % install x x
  install: x and x are the same file
  % install x ./
  % echo $?
  0

This workaround doesn't causes any problems with Ruby 1.9 and 1.8
because mkmf.rb on Ruby 1.9 and 1.8 don't use .time.
Use Dir.tmpdir instead of ./tmp/test

./tmp/test may not exist and may not be writable.  Using the temporary
directory should always be safe.

Fixes ruby bug #7717
Added a note to remove File#realpath workaround

In Ruby 1.9+ File#realpath exists which gives the proper name of a file
or directory.  For 1.8.7 support we need to use Dir.chdir and
File.expand_path '.' to get this information so a note has been added to
remove this once 1.8.7 support is dropped.
Hide RbConfig use from RDoc

Also, hide compatibility shims from RDoc
If `credentials` file has permissions other than 0600, print warning and exit.
Reduced use of eval in RubyGems

The uses of eval found were needless as other, more expressive methods
of meta-programming are also available.

Removed the private class method Gem::each_load_path as it is no longer
used by RubyGems and was not callable.
Clear spec and files when verification fails

While a user must use the accessors, if the gem is unsigned you
shouldn't be able to extract information from it for extra protection.
Added test for Gem::ConfigFile#rubygems_api_key=

This test supports #438
Failing test for #438

Applying #438 won't fix this test as it uses abort instead of
terminate_interaction.  That will be addressed in a follow-up commit.
Merge pull request #438 from havenwood/master

If `credentials` file has permissions other than 0600, abort.

The rubygems.org credentials file was saved with invalid credentials in the past.  Since this may have lead to disclosure of the credentials to a third party in the past abort with an error instead of attempting to fix it.
Fix tests for #438

Test for permissions before overwriting with new data to prevent
disclosure of a new key.

Test permissions using integer instead of string comparison.

Use alert_error and terminate_interaction (RubyGems API) instead of
abort.
Removed duplicate rubygems_api_keys= tests
Enforce credential permissions on read and write

Writing the credentials was covered but not reading them.

Updated wording to make links easier to copy and paste.

Suggested the user "should" reset their credentials if there is a
possibility of disclosure.

This completes #438.
Updated History.txt for #438
Use #send, remove_instance_variable is private