aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVít Ondruch <vondruch@redhat.com>2019-07-22 14:31:10 +0200
committerHiroshi SHIBATA <hsbt@ruby-lang.org>2019-07-31 07:47:02 +0800
commita3b784b3a068ddd9a395b8951e9977035eca5066 (patch)
tree1f88477341eacd8c4b00ae4704441511cc79d2d2
parentd1806bd8da963c597ccd8c0b63ceac4dbe3ff3ae (diff)
downloadruby-a3b784b3a068ddd9a395b8951e9977035eca5066.tar.gz
[rubygems/rubygems] Move default specifications dir definition out of BasicSpecification.
This was never the right place. The method got there just by evolution, not by design. Move it within default methods, where it suits better. Since this method is presumably used just internally, it should be safe to deprecate it and remove later. https://github.com/rubygems/rubygems/commit/0c0dd9458a
-rw-r--r--lib/rubygems/basic_specification.rb11
-rw-r--r--lib/rubygems/commands/setup_command.rb2
-rw-r--r--lib/rubygems/defaults.rb7
-rw-r--r--lib/rubygems/installer.rb2
-rw-r--r--lib/rubygems/specification.rb4
-rw-r--r--lib/rubygems/uninstaller.rb2
-rw-r--r--test/rubygems/test_gem_commands_setup_command.rb6
-rw-r--r--test/rubygems/test_gem_specification.rb6
8 files changed, 27 insertions, 13 deletions
diff --git a/lib/rubygems/basic_specification.rb b/lib/rubygems/basic_specification.rb
index bafada01a3..168d07a72f 100644
--- a/lib/rubygems/basic_specification.rb
+++ b/lib/rubygems/basic_specification.rb
@@ -35,7 +35,14 @@ class Gem::BasicSpecification
end
def self.default_specifications_dir
- File.join(Gem.default_dir, "specifications", "default")
+ Gem.default_specifications_dir
+ end
+
+ class << self
+
+ extend Gem::Deprecate
+ deprecate :default_specifications_dir, "Gem::BasicSpecification.default_specifications_dir", 2020, 02
+
end
##
@@ -84,7 +91,7 @@ class Gem::BasicSpecification
def default_gem?
loaded_from &&
- File.dirname(loaded_from) == self.class.default_specifications_dir
+ File.dirname(loaded_from) == Gem.default_specifications_dir
end
##
diff --git a/lib/rubygems/commands/setup_command.rb b/lib/rubygems/commands/setup_command.rb
index 1754630c8c..1cbc980eb0 100644
--- a/lib/rubygems/commands/setup_command.rb
+++ b/lib/rubygems/commands/setup_command.rb
@@ -382,7 +382,7 @@ By default, this RubyGems will install gem as:
end
def install_default_bundler_gem(bin_dir)
- specs_dir = Gem::Specification.default_specifications_dir
+ specs_dir = Gem.default_specifications_dir
specs_dir = File.join(options[:destdir], specs_dir) unless Gem.win_platform?
mkdir_p specs_dir, :mode => 0755
diff --git a/lib/rubygems/defaults.rb b/lib/rubygems/defaults.rb
index 33b6ab3f3e..da304b213b 100644
--- a/lib/rubygems/defaults.rb
+++ b/lib/rubygems/defaults.rb
@@ -71,6 +71,13 @@ module Gem
end
##
+ # Path to specification files of default gems.
+
+ def self.default_specifications_dir
+ File.join(Gem.default_dir, "specifications", "default")
+ end
+
+ ##
# Path for gems in the user's home directory
def self.user_dir
diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb
index 0676dcea64..b230ce7bed 100644
--- a/lib/rubygems/installer.rb
+++ b/lib/rubygems/installer.rb
@@ -448,7 +448,7 @@ class Gem::Installer
#
def default_spec_file
- File.join Gem::Specification.default_specifications_dir, "#{spec.full_name}.gemspec"
+ File.join Gem.default_specifications_dir, "#{spec.full_name}.gemspec"
end
##
diff --git a/lib/rubygems/specification.rb b/lib/rubygems/specification.rb
index 3b0b86230b..f40b9fd5fc 100644
--- a/lib/rubygems/specification.rb
+++ b/lib/rubygems/specification.rb
@@ -819,7 +819,7 @@ class Gem::Specification < Gem::BasicSpecification
def self.default_stubs(pattern = "*.gemspec")
base_dir = Gem.default_dir
gems_dir = File.join base_dir, "gems"
- gemspec_stubs_in(default_specifications_dir, pattern) do |path|
+ gemspec_stubs_in(Gem.default_specifications_dir, pattern) do |path|
Gem::StubSpecification.default_gemspec_stub(path, base_dir, gems_dir)
end
end
@@ -858,7 +858,7 @@ class Gem::Specification < Gem::BasicSpecification
# Loads the default specifications. It should be called only once.
def self.load_defaults
- each_spec([default_specifications_dir]) do |spec|
+ each_spec([Gem.default_specifications_dir]) do |spec|
# #load returns nil if the spec is bad, so we just ignore
# it at this stage
Gem.register_default_spec(spec)
diff --git a/lib/rubygems/uninstaller.rb b/lib/rubygems/uninstaller.rb
index 291bb6d611..bbca22154e 100644
--- a/lib/rubygems/uninstaller.rb
+++ b/lib/rubygems/uninstaller.rb
@@ -80,7 +80,7 @@ class Gem::Uninstaller
dirs =
Gem::Specification.dirs +
- [Gem::Specification.default_specifications_dir]
+ [Gem.default_specifications_dir]
Gem::Specification.each_spec dirs do |spec|
next unless dependency.matches_spec? spec
diff --git a/test/rubygems/test_gem_commands_setup_command.rb b/test/rubygems/test_gem_commands_setup_command.rb
index 0345386804..ad29b1bde5 100644
--- a/test/rubygems/test_gem_commands_setup_command.rb
+++ b/test/rubygems/test_gem_commands_setup_command.rb
@@ -67,7 +67,7 @@ class TestGemCommandsSetupCommand < Gem::TestCase
io.puts gemspec.to_ruby
end
- open(File.join(Gem::Specification.default_specifications_dir, "bundler-1.15.4.gemspec"), 'w') do |io|
+ open(File.join(Gem.default_specifications_dir, "bundler-1.15.4.gemspec"), 'w') do |io|
gemspec.version = "1.15.4"
io.puts gemspec.to_ruby
end
@@ -181,7 +181,7 @@ class TestGemCommandsSetupCommand < Gem::TestCase
@cmd.install_default_bundler_gem bin_dir
bundler_spec = Gem::Specification.load("bundler/bundler.gemspec")
- default_spec_path = File.join(Gem::Specification.default_specifications_dir, "#{bundler_spec.full_name}.gemspec")
+ default_spec_path = File.join(Gem.default_specifications_dir, "#{bundler_spec.full_name}.gemspec")
spec = Gem::Specification.load(default_spec_path)
spec.executables.each do |e|
@@ -192,7 +192,7 @@ class TestGemCommandsSetupCommand < Gem::TestCase
assert_path_exists File.join bin_dir, Gem.default_exec_format % e
end
- default_dir = Gem::Specification.default_specifications_dir
+ default_dir = Gem.default_specifications_dir
# expect to remove other versions of bundler gemspecs on default specification directory.
refute_path_exists File.join(default_dir, "bundler-1.15.4.gemspec")
diff --git a/test/rubygems/test_gem_specification.rb b/test/rubygems/test_gem_specification.rb
index ffb6ca2ad4..4c68545c3b 100644
--- a/test/rubygems/test_gem_specification.rb
+++ b/test/rubygems/test_gem_specification.rb
@@ -1126,7 +1126,7 @@ dependencies: []
Gem::Specification.class_variable_set(:@@stubs, nil)
dir_standard_specs = File.join Gem.dir, 'specifications'
- dir_default_specs = Gem::BasicSpecification.default_specifications_dir
+ dir_default_specs = Gem.default_specifications_dir
# Create gemspecs in three locations used in stubs
loaded_spec = Gem::Specification.new 'a', '3'
@@ -1146,7 +1146,7 @@ dependencies: []
Gem::Specification.class_variable_set(:@@stubs, nil)
dir_standard_specs = File.join Gem.dir, 'specifications'
- dir_default_specs = Gem::BasicSpecification.default_specifications_dir
+ dir_default_specs = Gem.default_specifications_dir
# Create gemspecs in three locations used in stubs
loaded_spec = Gem::Specification.new 'a', '3'
@@ -2049,7 +2049,7 @@ dependencies: []
def test_base_dir_default
default_dir =
- File.join Gem::Specification.default_specifications_dir, @a1.spec_name
+ File.join Gem.default_specifications_dir, @a1.spec_name
@a1.instance_variable_set :@loaded_from, default_dir