summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtool/rbinstall.rb16
1 files changed, 7 insertions, 9 deletions
diff --git a/tool/rbinstall.rb b/tool/rbinstall.rb
index 9f42325364..1851f01f79 100755
--- a/tool/rbinstall.rb
+++ b/tool/rbinstall.rb
@@ -737,7 +737,12 @@ class Gem::Installer
install = instance_method(:install)
define_method(:install) do
spec.post_install_message = nil
- install.bind(self).call
+ begin
+ u = File.umask(0022)
+ install.bind(self).call
+ ensure
+ File.umask(u)
+ end
end
generate_bin_script = instance_method(:generate_bin_script)
@@ -845,14 +850,7 @@ install?(:ext, :comm, :gem, :'bundle-gems') do
inst = Gem::Installer.new(gem, options)
inst.spec.extension_dir = with_destdir(inst.spec.extension_dir)
begin
- Gem::DefaultUserInteraction.use_ui(silent) do
- begin
- File.umask(022)
- inst.install
- ensure
- File.umask(0222)
- end
- end
+ Gem::DefaultUserInteraction.use_ui(silent) {inst.install}
rescue Gem::InstallError => e
next
end