summaryrefslogtreecommitdiff
path: root/dev-ruby/rubygems/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2021-12-05 02:47:11 +0000
committerV3n3RiX <venerix@koprulu.sector>2021-12-05 02:47:11 +0000
commit2771f79232c273bc2a57d23bf335dd81ccf6af28 (patch)
treec8af0fd04194aed03cf067d44e53c7edd3e9ab84 /dev-ruby/rubygems/files
parente9d044d4b9b71200a96adfa280848858c0f468c9 (diff)
gentoo resync : 05.12.2021
Diffstat (limited to 'dev-ruby/rubygems/files')
-rw-r--r--dev-ruby/rubygems/files/gentoo-defaults-5.rb65
1 files changed, 65 insertions, 0 deletions
diff --git a/dev-ruby/rubygems/files/gentoo-defaults-5.rb b/dev-ruby/rubygems/files/gentoo-defaults-5.rb
new file mode 100644
index 000000000000..602ad0e4055e
--- /dev/null
+++ b/dev-ruby/rubygems/files/gentoo-defaults-5.rb
@@ -0,0 +1,65 @@
+# frozen_string_literal: true
+
+# Gentoo defaults for rubygems 3.x
+#
+# Gentoo policy is to install all manually installed code into
+# /usr/local and to keep /usr managed by Gentoo. This policy file
+# ensures that all manually installed gems using "gem install" as root
+# are installed in /usr/local. Gentoo gems are installed in /usr.
+
+# TODO: We used to manipulate the default_dir, but this no longer
+# works since this is now the base for the new "default" gems that
+# ruby 2.6 uses with irb. So default_dir should refer to the system
+# default now. rubygems also provides various hooks so we may be able
+# to use those to install gems in /usr/local by default in a less
+# intrusive way.
+module Gem
+ class << self
+ def portage_gems_dir
+ RbConfig::CONFIG['sitelibdir'].gsub('site_ruby', 'gems')
+ end
+
+ def bindir
+ Process.euid.zero? ? '@GENTOO_PORTAGE_EPREFIX@/usr/local/bin' : File.join(user_home, 'bin')
+ end
+
+ def local_dir
+ portage_gems_dir.gsub('@GENTOO_PORTAGE_EPREFIX@/usr',
+ '@GENTOO_PORTAGE_EPREFIX@/usr/local')
+ end
+
+ def install_dir
+ Process.euid.zero? ? local_dir : user_dir
+ end
+
+ undef :default_path
+ def default_path
+ path = []
+ path << user_dir if user_home && File.exist?(user_home)
+ path << default_dir
+ path << vendor_dir if vendor_dir && File.directory?(vendor_dir)
+ path << local_dir
+ path << portage_gems_dir
+ end
+
+ def system_config_path
+ '@GENTOO_PORTAGE_EPREFIX@/etc'
+ end
+
+ # Set Gentoo defaults for gem commands
+ begin
+ undef :operating_system_defaults
+ rescue NameError
+ # Avoid either runtime errors or redefinition warnings since
+ # this method is not present in all rubygem versions distributed
+ # with dev-lang/ruby.
+ end
+ def operating_system_defaults
+ {
+ 'install' => "--install-dir #{install_dir}",
+ 'uninstall' => "--install-dir #{install_dir}",
+ 'update' => "--install-dir #{install_dir}"
+ }
+ end
+ end
+end