[前][次][番号順一覧][スレッド一覧]

ruby-changes:27746

From: nagachika <ko1@a...>
Date: Mon, 18 Mar 2013 00:03:01 +0900 (JST)
Subject: [ruby-changes:27746] nagachika:r39798 (ruby_2_0_0): merge revision(s) 39607: [Backport #7713]

nagachika	2013-03-18 00:02:50 +0900 (Mon, 18 Mar 2013)

  New Revision: 39798

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=39798

  Log:
    merge revision(s) 39607: [Backport #7713]
    
    * lib/rubygems.rb:  Allow specification of directory permissions.
      [ruby-trunk - Bug #7713]
    
    * test/rubygems/test_gem.rb:  Test for the above.

  Modified directories:
    branches/ruby_2_0_0/
  Modified files:
    branches/ruby_2_0_0/ChangeLog
    branches/ruby_2_0_0/lib/rubygems.rb
    branches/ruby_2_0_0/test/rubygems/test_gem.rb
    branches/ruby_2_0_0/version.h

Index: ruby_2_0_0/ChangeLog
===================================================================
--- ruby_2_0_0/ChangeLog	(revision 39797)
+++ ruby_2_0_0/ChangeLog	(revision 39798)
@@ -1,3 +1,9 @@ https://github.com/ruby/ruby/blob/trunk/ruby_2_0_0/ChangeLog#L1
+Mon Mar 18 00:02:27 2013  Eric Hodel  <drbrain@s...>
+
+	* lib/rubygems.rb:  Allow specification of directory permissions.
+	  [ruby-trunk - Bug #7713]
+	* test/rubygems/test_gem.rb:  Test for the above.
+
 Mon Mar 18 00:00:32 2013  Eric Hodel  <drbrain@s...>
 
 	* test/rubygems/test_gem_spec_fetcher.rb:  Removed unused variable.
Index: ruby_2_0_0/lib/rubygems.rb
===================================================================
--- ruby_2_0_0/lib/rubygems.rb	(revision 39797)
+++ ruby_2_0_0/lib/rubygems.rb	(revision 39798)
@@ -375,20 +375,28 @@ module Gem https://github.com/ruby/ruby/blob/trunk/ruby_2_0_0/lib/rubygems.rb#L375
   end
 
   ##
-  # Quietly ensure the named Gem directory contains all the proper
+  # Quietly ensure the Gem directory +dir+ contains all the proper
   # subdirectories.  If we can't create a directory due to a permission
   # problem, then we will silently continue.
+  #
+  # If +mode+ is given, missing directories are created with this mode.
+  #
+  # World-writable directories will never be created.
 
-  def self.ensure_gem_subdirectories dir = Gem.dir
+  def self.ensure_gem_subdirectories dir = Gem.dir, mode = nil
     old_umask = File.umask
     File.umask old_umask | 002
 
     require 'fileutils'
 
+    options = {}
+
+    options[:mode] = mode if mode
+
     REPOSITORY_SUBDIRECTORIES.each do |name|
       subdir = File.join dir, name
       next if File.exist? subdir
-      FileUtils.mkdir_p subdir rescue nil # in case of perms issues -- lame
+      FileUtils.mkdir_p subdir, options rescue nil
     end
   ensure
     File.umask old_umask
Index: ruby_2_0_0/version.h
===================================================================
--- ruby_2_0_0/version.h	(revision 39797)
+++ ruby_2_0_0/version.h	(revision 39798)
@@ -1,6 +1,6 @@ https://github.com/ruby/ruby/blob/trunk/ruby_2_0_0/version.h#L1
 #define RUBY_VERSION "2.0.0"
 #define RUBY_RELEASE_DATE "2013-03-18"
-#define RUBY_PATCHLEVEL 67
+#define RUBY_PATCHLEVEL 68
 
 #define RUBY_RELEASE_YEAR 2013
 #define RUBY_RELEASE_MONTH 3
Index: ruby_2_0_0/test/rubygems/test_gem.rb
===================================================================
--- ruby_2_0_0/test/rubygems/test_gem.rb	(revision 39797)
+++ ruby_2_0_0/test/rubygems/test_gem.rb	(revision 39798)
@@ -700,6 +700,18 @@ class TestGem < Gem::TestCase https://github.com/ruby/ruby/blob/trunk/ruby_2_0_0/test/rubygems/test_gem.rb#L700
     assert File.directory? File.join(@gemhome, "cache")
   end
 
+  def test_self_ensure_gem_directories_permissions
+    FileUtils.rm_r @gemhome
+    Gem.use_paths @gemhome
+
+    Gem.ensure_gem_subdirectories @gemhome, 0750
+
+    assert File.directory? File.join(@gemhome, "cache")
+
+    assert_equal 0750, File::Stat.new(@gemhome).mode & 0777
+    assert_equal 0750, File::Stat.new(File.join(@gemhome, "cache")).mode & 0777
+  end unless win_platform?
+
   def test_self_ensure_gem_directories_safe_permissions
     FileUtils.rm_r @gemhome
     Gem.use_paths @gemhome

Property changes on: ruby_2_0_0
___________________________________________________________________
Modified: svn:mergeinfo
   Merged /trunk:r39607


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]